public void AddInputActionS(Newtonsoft.Json.Linq.JToken Data, OleExec sfcdb) { // OleExec sfcdb = null; string InsertSql = ""; T_R_Input_Action inputaction; string ID = Data["ID"].ToString(); string InputID = Data["InputID"].ToString(); string StationActionID = Data["StationActionID"].ToString(); int SeqNo = Convert.ToInt32(Data["SeqNo"]); string ConfigType = Data["ConfigType"].ToString(); string ConfigValue = Data["ConfigValue"].ToString(); int AddFlag = Convert.ToInt32(Data["AddFlag"]); try { inputaction = new T_R_Input_Action(sfcdb, DBTYPE); DeleteInputAction(ID, sfcdb); Row_R_Input_Action row = (Row_R_Input_Action)inputaction.NewRow(); row.ID = ID; row.INPUT_ID = InputID; row.C_STATION_ACTION_ID = StationActionID; row.SEQ_NO = SeqNo; row.CONFIG_TYPE = ConfigType; row.CONFIG_VALUE = ConfigValue; row.ADD_FLAG = AddFlag; row.EDIT_EMP = LoginUser.EMP_NO; row.EDIT_TIME = GetDBDateTime(); InsertSql = row.GetInsertString(DBTYPE); sfcdb.ExecSQL(InsertSql); } catch (Exception e) { //this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
public void AddStationActionPara(Newtonsoft.Json.Linq.JToken Data, OleExec sfcdb) { //OleExec sfcdb = null; string InsertSql = ""; T_R_Station_Action_Para input; string ID = Data["ID"].ToString(); string RInputActionID = Data["R_INPUT_ACTION_ID"].ToString(); string RStationActionID = Data["R_STATION_ACTION_ID"].ToString(); double SeqNo = Convert.ToDouble(Data["SEQ_NO"]); string SessionType = Data["SESSION_TYPE"].ToString(); string SessionValue = Data["SESSION_KEY"].ToString(); string StrValue = Data["VALUE"].ToString(); try { input = new T_R_Station_Action_Para(sfcdb, DBTYPE); DeleteStationActionPara(ID, sfcdb); Row_R_Station_Action_Para row = (Row_R_Station_Action_Para)input.NewRow(); row.ID = ID; row.R_STATION_ACTION_ID = RStationActionID; row.R_INPUT_ACTION_ID = RInputActionID; row.SEQ_NO = SeqNo; row.SESSION_TYPE = SessionType; row.SESSION_KEY = SessionValue; row.VALUE = StrValue; row.EDIT_EMP = LoginUser.EMP_NO; row.EDIT_TIME = GetDBDateTime(); InsertSql = row.GetInsertString(DBTYPE); sfcdb.ExecSQL(InsertSql); } catch (Exception e) { // this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
public void AddStationAction(Newtonsoft.Json.Linq.JToken Data, OleExec sfcdb) { //OleExec sfcdb = null; string InsertSql = ""; T_R_Station_Action input; string ID = Data["ID"].ToString(); string RStationInputID = Data["R_STATION_INPUT_ID"].ToString(); string CStationActionID = Data["C_STATION_ACTION_ID"].ToString(); double SeqNo = Convert.ToDouble(Data["SEQ_NO"]); string ConfigType = Data["CONFIG_TYPE"].ToString(); string ConfigValue = Data["CONFIG_VALUE"].ToString(); double AddFlag = Convert.ToDouble(Data["ADD_FLAG"]); try { input = new T_R_Station_Action(sfcdb, DBTYPE); DeleteStationAction(ID, sfcdb); Row_R_Station_Action row = (Row_R_Station_Action)input.NewRow(); row.ID = ID; row.R_STATION_INPUT_ID = RStationInputID; row.C_STATION_ACTION_ID = CStationActionID; row.SEQ_NO = SeqNo; row.CONFIG_TYPE = ConfigType; row.CONFIG_VALUE = ConfigValue; row.ADD_FLAG = AddFlag; row.EDIT_EMP = LoginUser.EMP_NO; row.EDIT_TIME = GetDBDateTime(); InsertSql = row.GetInsertString(DBTYPE); sfcdb.ExecSQL(InsertSql); } catch (Exception e) { // this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
/// <summary> /// downlaod wo info into r_wo_header from sap /// </summary> protected void SaveWOHeader() { if (_downloadWO != "") { sql = ""; woIsExist = false; rowWOHeader = null; autoDownLoad = false; try { rowWOHeader = dtWOHeader.Select("AUFNR='" + _downloadWO + "'"); if (rowWOHeader.Length == 0) { throw new Exception("wo " + _downloadWO + " can't exist on sap"); } skuIsExist = C_SKU.CheckSku(rowWOHeader[0]["MATNR"].ToString(), SFCDB); if (!skuIsExist) { throw new Exception(" sku " + rowWOHeader[0]["MATNR"].ToString() + " can't exist"); } woIsExist = R_WO_HEADER.CheckWoHeadByWo(rowWOHeader[0]["AUFNR"].ToString(), autoDownLoad, SFCDB); if (woIsExist) { return; } Row_R_WO_HEADER rowRWOHeader = (Row_R_WO_HEADER)R_WO_HEADER.NewRow(); rowRWOHeader.ID = R_WO_HEADER.GetNewID(BU, SFCDB); rowRWOHeader.AUFNR = rowWOHeader[0]["AUFNR"].ToString(); rowRWOHeader.WERKS = rowWOHeader[0]["WERKS"].ToString(); rowRWOHeader.AUART = rowWOHeader[0]["AUART"].ToString(); rowRWOHeader.MATNR = rowWOHeader[0]["MATNR"].ToString(); rowRWOHeader.REVLV = rowWOHeader[0]["REVLV"].ToString(); rowRWOHeader.KDAUF = rowWOHeader[0]["KDAUF"].ToString(); rowRWOHeader.GSTRS = rowWOHeader[0]["GSTRS"].ToString(); rowRWOHeader.GAMNG = rowWOHeader[0]["GAMNG"].ToString(); rowRWOHeader.KDMAT = rowWOHeader[0]["KDMAT"].ToString(); rowRWOHeader.AEDAT = rowWOHeader[0]["AEDAT"].ToString(); rowRWOHeader.AENAM = rowWOHeader[0]["AENAM"].ToString(); rowRWOHeader.MATKL = rowWOHeader[0]["MATKL"].ToString(); rowRWOHeader.MAKTX = rowWOHeader[0]["MAKTX"].ToString(); rowRWOHeader.ERDAT = rowWOHeader[0]["ERDAT"].ToString(); rowRWOHeader.GSUPS = rowWOHeader[0]["GSUPS"].ToString(); rowRWOHeader.ERFZEIT = rowWOHeader[0]["ERFZEIT"].ToString(); rowRWOHeader.GLTRS = rowWOHeader[0]["GLTRS"].ToString(); rowRWOHeader.GLUPS = rowWOHeader[0]["GLUPS"].ToString(); rowRWOHeader.LGORT = rowWOHeader[0]["LGORT"].ToString(); rowRWOHeader.ABLAD = rowWOHeader[0]["ABLAD"].ToString(); rowRWOHeader.ROHS_VALUE = rowWOHeader[0]["ROHS_VALUE"].ToString(); rowRWOHeader.FTRMI = rowWOHeader[0]["FTRMI"].ToString(); rowRWOHeader.MVGR3 = rowWOHeader[0]["MVGR3"].ToString(); rowRWOHeader.WEMNG = rowWOHeader[0]["WEMNG"].ToString(); rowRWOHeader.BISMT = rowWOHeader[0]["BISMT"].ToString(); rowRWOHeader.CHARG = rowWOHeader[0]["CHARG"].ToString(); rowRWOHeader.SAENR = rowWOHeader[0]["SAENR"].ToString(); rowRWOHeader.AETXT = rowWOHeader[0]["AETXT"].ToString(); rowRWOHeader.GLTRP = rowWOHeader[0]["GLTRP"].ToString(); sql = rowRWOHeader.GetInsertString(DB_TYPE_ENUM.Oracle); SFCDB.ExecSQL(sql); rowWOItem = null; rowWOItem = dtWOItem.Select("AUFNR='" + rowWOHeader[0]["AUFNR"].ToString() + "'"); SaveWOItem(rowWOItem); SFCDB.CommitTrain(); } catch (Exception ex) { WriteLog.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.DownLoadWO", "SaveWOHeader", ip + ";" + _downloadWO + "; Download r_wo_header fail," + ex.Message.ToString(), sql, "interface"); } } else { for (int i = 0; i < dtWOHeader.Rows.Count; i++) { sql = ""; woIsExist = false; try { skuIsExist = C_SKU.CheckSku(dtWOHeader.Rows[i]["MATNR"].ToString(), SFCDB); if (!skuIsExist) { throw new Exception(" sku " + dtWOHeader.Rows[i]["MATNR"].ToString() + " can't exist"); } woIsExist = R_WO_HEADER.CheckWoHeadByWo(dtWOHeader.Rows[i]["AUFNR"].ToString(), autoDownLoad, SFCDB); if (woIsExist) { continue; } Row_R_WO_HEADER rowRWOHeader = (Row_R_WO_HEADER)R_WO_HEADER.NewRow(); rowRWOHeader.ID = R_WO_HEADER.GetNewID(BU, SFCDB); rowRWOHeader.AUFNR = dtWOHeader.Rows[i]["AUFNR"].ToString(); rowRWOHeader.WERKS = dtWOHeader.Rows[i]["WERKS"].ToString(); rowRWOHeader.AUART = dtWOHeader.Rows[i]["AUART"].ToString(); rowRWOHeader.MATNR = dtWOHeader.Rows[i]["MATNR"].ToString(); rowRWOHeader.REVLV = dtWOHeader.Rows[i]["REVLV"].ToString(); rowRWOHeader.KDAUF = dtWOHeader.Rows[i]["KDAUF"].ToString(); rowRWOHeader.GSTRS = dtWOHeader.Rows[i]["GSTRS"].ToString(); rowRWOHeader.GAMNG = dtWOHeader.Rows[i]["GAMNG"].ToString(); rowRWOHeader.KDMAT = dtWOHeader.Rows[i]["KDMAT"].ToString(); rowRWOHeader.AEDAT = dtWOHeader.Rows[i]["AEDAT"].ToString(); rowRWOHeader.AENAM = dtWOHeader.Rows[i]["AENAM"].ToString(); rowRWOHeader.MATKL = dtWOHeader.Rows[i]["MATKL"].ToString(); rowRWOHeader.MAKTX = dtWOHeader.Rows[i]["MAKTX"].ToString(); rowRWOHeader.ERDAT = dtWOHeader.Rows[i]["ERDAT"].ToString(); rowRWOHeader.GSUPS = dtWOHeader.Rows[i]["GSUPS"].ToString(); rowRWOHeader.ERFZEIT = dtWOHeader.Rows[i]["ERFZEIT"].ToString(); rowRWOHeader.GLTRS = dtWOHeader.Rows[i]["GLTRS"].ToString(); rowRWOHeader.GLUPS = dtWOHeader.Rows[i]["GLUPS"].ToString(); rowRWOHeader.LGORT = dtWOHeader.Rows[i]["LGORT"].ToString(); rowRWOHeader.ABLAD = dtWOHeader.Rows[i]["ABLAD"].ToString(); rowRWOHeader.ROHS_VALUE = dtWOHeader.Rows[i]["ROHS_VALUE"].ToString(); rowRWOHeader.FTRMI = dtWOHeader.Rows[i]["FTRMI"].ToString(); rowRWOHeader.MVGR3 = dtWOHeader.Rows[i]["MVGR3"].ToString(); rowRWOHeader.WEMNG = dtWOHeader.Rows[i]["WEMNG"].ToString(); rowRWOHeader.BISMT = dtWOHeader.Rows[i]["BISMT"].ToString(); rowRWOHeader.CHARG = dtWOHeader.Rows[i]["CHARG"].ToString(); rowRWOHeader.SAENR = dtWOHeader.Rows[i]["SAENR"].ToString(); rowRWOHeader.AETXT = dtWOHeader.Rows[i]["AETXT"].ToString(); rowRWOHeader.GLTRP = dtWOHeader.Rows[i]["GLTRP"].ToString(); sql = rowRWOHeader.GetInsertString(DB_TYPE_ENUM.Oracle); SFCDB.ExecSQL(sql); rowWOItem = null; rowWOItem = dtWOItem.Select("AUFNR='" + dtWOHeader.Rows[i]["AUFNR"].ToString() + "'"); SaveWOItem(rowWOItem); SFCDB.CommitTrain(); } catch (Exception ex) { WriteLog.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.DownLoadWO", "SaveWOHeader", ip + ";" + dtWOHeader.Rows[i]["AUFNR"].ToString() + ";Download r_wo_header fail," + ex.Message.ToString(), sql, "interface"); continue; } } } }
public void SetFileDisableByName(string Name, string UseType, OleExec DB) { string strSql = $@"update R_FILE r set r.valid = 0 where r.name='{Name}' and r.usetype ='{UseType}' "; DB.ExecSQL(strSql); }
/// <summary> /// Delete Expand Info by id /// </summary> /// <param name="db"></param> /// <param name="id"></param> /// <param name="seq_no"></param> /// <returns></returns> public string DeleteExpandInfo(OleExec db, string id) { string sql = $@"delete {this.TableName} where id='{id}'"; return(db.ExecSQL(sql)); }
public string UpdateSNBySnId(string snId, string sn, string user, OleExec SFCDB) { string sql = $@" update r_sn_kp set sn='{sn}',edit_time=sysdate,edit_emp='{user}' where r_sn_id='{snId}' "; return(SFCDB.ExecSQL(sql)); }
public void InLotPassStation(string NewLotFlag, R_SN SNObj, string LotNo, string LotSatusID, string Station, string EmpNo, string AQL_TYPE, string Line, string BU, OleExec DB) { T_R_LOT_STATUS Table_R_Lot_Status = new T_R_LOT_STATUS(DB, DBType); Row_R_LOT_STATUS Row_R_Lot_Status = (Row_R_LOT_STATUS)NewRow(); T_R_LOT_DETAIL Table_R_Lot_Detail = new T_R_LOT_DETAIL(DB, DBType); Row_R_LOT_DETAIL Row_R_Lot_Detail = (Row_R_LOT_DETAIL)Table_R_Lot_Detail.NewRow(); T_C_AQLTYPE Table_C_AQLTYPE = new T_C_AQLTYPE(DB, DBType); try { string LotID = ""; if (NewLotFlag == "1") { //Modify by LLF 2018-03-19,生成ID,需根據Table生成 //LotID= GetNewID(BU, DB); LotID = Table_R_Lot_Status.GetNewID(BU, DB); Row_R_Lot_Status.ID = LotID; Row_R_Lot_Status.LOT_NO = LotNo; Row_R_Lot_Status.SKUNO = SNObj.SKUNO; Row_R_Lot_Status.AQL_TYPE = AQL_TYPE; Row_R_Lot_Status.LOT_QTY = 1; Row_R_Lot_Status.REJECT_QTY = 0; Row_R_Lot_Status.SAMPLE_QTY = 1; Row_R_Lot_Status.PASS_QTY = 0; Row_R_Lot_Status.FAIL_QTY = 0; Row_R_Lot_Status.CLOSED_FLAG = "0"; Row_R_Lot_Status.LOT_STATUS_FLAG = "0"; Row_R_Lot_Status.LINE = Line; Row_R_Lot_Status.SAMPLE_STATION = Station; Row_R_Lot_Status.EDIT_EMP = EmpNo; Row_R_Lot_Status.EDIT_TIME = GetDBDateTime(DB); DB.ExecSQL(Row_R_Lot_Status.GetInsertString(DBType)); } else { LotID = LotSatusID; Row_R_Lot_Status = (Row_R_LOT_STATUS)Table_R_Lot_Status.GetObjByID(LotSatusID, DB); int LotQty = (int)Row_R_Lot_Status.LOT_QTY + 1; int SampleQty = Table_C_AQLTYPE.GetSampleQty(AQL_TYPE, LotQty, DB); Row_R_Lot_Status.SAMPLE_QTY = SampleQty; Row_R_Lot_Status.LOT_QTY += 1; DB.ExecSQL(Row_R_Lot_Status.GetUpdateString(DBType)); } //Modify by LLF 2018-03-19,生成ID,需根據Table生成 //Row_R_Lot_Detail.ID = GetNewID(BU, DB); Row_R_Lot_Detail.ID = Table_R_Lot_Detail.GetNewID(BU, DB); Row_R_Lot_Detail.LOT_ID = LotID; //Row_R_Lot_Detail.LOT_ID = LotID; Row_R_Lot_Detail.SN = SNObj.SN; Row_R_Lot_Detail.WORKORDERNO = SNObj.WORKORDERNO; Row_R_Lot_Detail.CREATE_DATE = GetDBDateTime(DB); Row_R_Lot_Detail.SAMPLING = "0"; Row_R_Lot_Detail.STATUS = "0"; Row_R_Lot_Detail.FAIL_CODE = ""; Row_R_Lot_Detail.FAIL_LOCATION = ""; Row_R_Lot_Detail.DESCRIPTION = ""; Row_R_Lot_Detail.CARTON_NO = ""; Row_R_Lot_Detail.PALLET_NO = ""; Row_R_Lot_Detail.EDIT_EMP = EmpNo; Row_R_Lot_Detail.EDIT_TIME = GetDBDateTime(DB); DB.ExecSQL(Row_R_Lot_Detail.GetInsertString(DBType)); } catch (Exception ex) { throw ex; } }
/// <summary> /// Deploy New Class Time Row /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void DeployNewClassTime(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { MESException exception = new MESException(""); string[] msg = new string[1]; if (string.IsNullOrEmpty(Data["WORK_SECTION"].ToString())) { //msg[0] = "Please Input Work Section"; //throw exception.GetMESException("", "", msg); throw new Exception("Please Input Work Section"); } if (string.IsNullOrEmpty(Data["START_TIME"].ToString())) { throw new Exception("Please Input Start Time"); } if (string.IsNullOrEmpty(Data["END_TIME"].ToString())) { throw new Exception("Please Input End Time"); } if (string.IsNullOrEmpty(Data["DAY_DISTINCT"].ToString())) { throw new Exception("Please Input Day Distinct"); } string strRet = ""; OleExec sfcdb = this.DBPools["SFCDB"].Borrow(); T_C_CLASS_TIME classTime = new T_C_CLASS_TIME(sfcdb, DB_TYPE_ENUM.Oracle); Row_C_CLASS_TIME r = (Row_C_CLASS_TIME)classTime.NewRow(); //r.ID = classTime.GetNewID(this.BU,sfcdb,DB_TYPE_ENUM.Oracle); r.ID = classTime.GetNewID("HWD", sfcdb, DB_TYPE_ENUM.Oracle); r.SEQ_NO = classTime.GetTotalRows(sfcdb) + 1; r.WORK_SECTION = Data["WORK_SECTION"].ToString().Trim(); r.START_TIME = Data["START_TIME"].ToString().Trim(); r.END_TIME = Data["END_TIME"].ToString().Trim(); if (Data["DAY_DISTINCT"].ToString().Trim() == "Shift1") { r.WORK_CLASS = ((int)WORK_CLASS.Shift1).ToString(); r.DAY_DISTINCT = WORK_CLASS.Shift1.ToString(); } else { r.WORK_CLASS = ((int)WORK_CLASS.Shift2).ToString(); r.DAY_DISTINCT = WORK_CLASS.Shift2.ToString(); } r.EDIT_EMP = this.LoginUser; r.EDIT_TIME = DateTime.Now; strRet = sfcdb.ExecSQL(r.GetInsertString(DB_TYPE_ENUM.Oracle)); try { int rows = int.Parse(strRet); sfcdb.CommitTrain(); StationReturn.Status = "PASS"; StationReturn.Message = "OK,Deploy New Class Time OK!"; StationReturn.data = rows; } catch { sfcdb.RollbackTrain(); StationReturn.Status = "FAIL"; StationReturn.Message = strRet; StationReturn.data = ""; } this.DBPools["SFCDB"].Return(sfcdb); }
public void AddWorkClass(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string className = Data["CLASS_NAME"].ToString().Trim(); string startTime = Data["START_TIME"].ToString().Trim(); string endTime = Data["END_TIME"].ToString().Trim(); bool isExist = false; OleExec oleDB = null; T_C_WORK_CLASS workClass = null; if (string.IsNullOrEmpty(className)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("CLASS NAME"); StationReturn.Data = ""; return; } if (string.IsNullOrEmpty(startTime)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("START TIME"); StationReturn.Data = ""; return; } if (string.IsNullOrEmpty(endTime)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("END TIME"); StationReturn.Data = ""; return; } try { oleDB = this.DBPools["SFCDB"].Borrow(); workClass = new T_C_WORK_CLASS(oleDB, DBTYPE); if (workClass.WorkClassIsExistByName(className, oleDB)) { StationReturn.MessagePara.Add(className); isExist = true; } if (workClass.TimeIsExist(startTime, oleDB)) { StationReturn.MessagePara.Add(startTime); isExist = true; } if (workClass.TimeIsExist(endTime, oleDB)) { StationReturn.MessagePara.Add(endTime); isExist = true; } if (isExist) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000008"; StationReturn.Data = ""; } else { Row_C_WORK_CLASS workClassRow = (Row_C_WORK_CLASS)workClass.NewRow(); workClassRow.ID = workClass.GetNewID(this.BU, oleDB, DBTYPE); workClassRow.NAME = className; workClassRow.START_TIME = startTime; workClassRow.END_TIME = endTime; oleDB.ThrowSqlExeception = true; oleDB.ExecSQL(workClassRow.GetInsertString(DBTYPE)); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000002"; StationReturn.Data = ""; } this.DBPools["SFCDB"].Return(oleDB); } catch (Exception exctption) { this.DBPools["SFCDB"].Return(oleDB); throw exctption; } }
public string UpdatePackIDBySnID(string snID, string parnetPackID, string emp, OleExec sfcdb) { string sql = $@" update r_sn_packing set pack_id='{parnetPackID}',edit_emp='{emp}',edit_time=sysdate where sn_id='{snID}' "; return(sfcdb.ExecSQL(sql)); }
//void GetKeyPart(string PN, string seq) //{ //} /// <summary> /// 寫入 r_sn_kp /// </summary> /// <param name="rowWo"></param> /// <param name="r_sn"></param> /// <param name="sfcdb"></param> /// <param name="Station"></param> /// <param name="sfcdbType"></param> /// <param name=""></param> public void InsertR_SN_KP(WorkOrder woObject, R_SN r_sn, OleExec sfcdb, BaseClass.MESStationBase Station, MESDataObject.DB_TYPE_ENUM sfcdbType) { T_C_KP_LIST t_c_kp_list = new T_C_KP_LIST(sfcdb, sfcdbType); T_C_KP_List_Item t_c_kp_list_item = new T_C_KP_List_Item(sfcdb, sfcdbType); T_C_KP_List_Item_Detail t_c_kp_list_item_detail = new T_C_KP_List_Item_Detail(sfcdb, sfcdbType); T_R_SN_KP t_r_sn_kp = new T_R_SN_KP(sfcdb, sfcdbType); T_C_SKU_MPN t_c_sku_mpn = new T_C_SKU_MPN(sfcdb, sfcdbType); T_C_KP_Rule c_kp_rule = new T_C_KP_Rule(sfcdb, sfcdbType); Row_R_SN_KP rowSNKP; List <C_KP_List_Item> kpItemList = new List <C_KP_List_Item>(); List <C_SKU_MPN> skuMpnList = new List <C_SKU_MPN>(); List <C_KP_List_Item_Detail> itemDetailList = new List <C_KP_List_Item_Detail>(); C_KP_Rule kpRule = new C_KP_Rule(); int scanseq = 0; int result; string skuMpn = ""; try { kpItemList = t_c_kp_list_item.GetItemObjectByListId(woObject.KP_LIST_ID, sfcdb); if (kpItemList == null || kpItemList.Count == 0) { throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000255", new string[] { woObject.SkuNO })); } foreach (C_KP_List_Item kpItem in kpItemList) { itemDetailList = t_c_kp_list_item_detail.GetItemDetailObjectByItemId(kpItem.ID, sfcdb); if (itemDetailList == null || itemDetailList.Count == 0) { throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000255", new string[] { woObject.SkuNO })); } skuMpnList = t_c_sku_mpn.GetMpnBySkuAndPartno(sfcdb, woObject.SkuNO, kpItem.KP_PARTNO); if (skuMpnList.Count != 0) { skuMpn = skuMpnList[0].MPN; } foreach (C_KP_List_Item_Detail itemDetail in itemDetailList) { scanseq = scanseq + 1; kpRule = c_kp_rule.GetKPRule(sfcdb, kpItem.KP_PARTNO, skuMpn, itemDetail.SCANTYPE); if (kpRule == null) { throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000256", new string[] { kpItem.KP_PARTNO, skuMpn, itemDetail.SCANTYPE })); } if (kpRule.REGEX == "") { throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000256", new string[] { kpItem.KP_PARTNO, skuMpn, itemDetail.SCANTYPE })); } rowSNKP = (Row_R_SN_KP)t_r_sn_kp.NewRow(); rowSNKP.ID = t_r_sn_kp.GetNewID(Station.BU, sfcdb); rowSNKP.R_SN_ID = r_sn.ID; rowSNKP.SN = r_sn.SN; rowSNKP.VALUE = ""; rowSNKP.PARTNO = kpItem.KP_PARTNO; rowSNKP.KP_NAME = kpItem.KP_NAME; rowSNKP.MPN = skuMpn; rowSNKP.SCANTYPE = itemDetail.SCANTYPE; rowSNKP.ITEMSEQ = kpItem.SEQ; rowSNKP.SCANSEQ = scanseq; rowSNKP.DETAILSEQ = itemDetail.SEQ; rowSNKP.STATION = kpItem.STATION; rowSNKP.REGEX = kpRule.REGEX; rowSNKP.VALID_FLAG = 1; rowSNKP.EXKEY1 = ""; rowSNKP.EXVALUE1 = ""; rowSNKP.EXKEY2 = ""; rowSNKP.EXVALUE2 = ""; rowSNKP.EDIT_EMP = Station.LoginUser.EMP_NO; rowSNKP.EDIT_TIME = Station.GetDBDateTime(); result = Convert.ToInt32(sfcdb.ExecSQL(rowSNKP.GetInsertString(sfcdbType))); if (result <= 0) { throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000083", new string[] { "R_SN_KP:" + r_sn.SN, "ADD" })); } } } } catch (Exception ex) { throw ex; } }
public void CutWoBySNId(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn) { OleExec sfcdb = null; try { string wo = Data["WO"].ToString().ToUpper().Trim(); string closeFlag = Data["CLOSEFLAG"].ToString().ToUpper().Trim(); Newtonsoft.Json.Linq.JArray arrayId = (Newtonsoft.Json.Linq.JArray)Data["ID"]; sfcdb = this.DBPools["SFCDB"].Borrow(); sfcdb.ThrowSqlExeception = true; T_R_WO_BASE t_r_wo_base = new T_R_WO_BASE(sfcdb, DBTYPE); R_WO_BASE r_wo_base = t_r_wo_base.GetWoByWoNo(wo, sfcdb); if (r_wo_base == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000164", new string[] { wo })); } T_R_SN t_r_sn = new T_R_SN(sfcdb, DBTYPE); Row_R_SN rowSN; for (int i = 0; i < arrayId.Count; i++) { rowSN = (Row_R_SN)t_r_sn.GetObjByID(arrayId[i].ToString(), sfcdb); rowSN.SN = "CUT_" + rowSN.SN; rowSN.WORKORDERNO = "CUT_" + rowSN.WORKORDERNO; rowSN.SKUNO = "CUT_" + rowSN.SKUNO; rowSN.EDIT_EMP = LoginUser.EMP_NO; rowSN.EDIT_TIME = GetDBDateTime(); sfcdb.ExecSQL(rowSN.GetUpdateString(DBTYPE)); } Row_R_WO_BASE rowWoBase = (Row_R_WO_BASE)t_r_wo_base.GetObjByID(r_wo_base.ID, sfcdb); rowWoBase.WORKORDER_QTY = r_wo_base.WORKORDER_QTY - Convert.ToDouble(arrayId.Count); rowWoBase.INPUT_QTY = r_wo_base.INPUT_QTY - Convert.ToDouble(arrayId.Count); rowWoBase.EDIT_EMP = LoginUser.EMP_NO; rowWoBase.EDIT_TIME = GetDBDateTime(); if (closeFlag == "1") { rowWoBase.CLOSED_FLAG = closeFlag; rowWoBase.CLOSE_DATE = GetDBDateTime(); } sfcdb.ExecSQL(rowWoBase.GetUpdateString(DBTYPE)); this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Data = r_wo_base; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000210"; StationReturn.MessagePara.Add(wo); StationReturn.MessagePara.Add(arrayId.Count); } catch (Exception exception) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(exception.Message); StationReturn.Data = exception.Message; if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } }
public void CutWoByNum(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn) { string wo = Data["WO"].ToString().ToUpper().Trim(); string closeFlag = Data["CLOSEFLAG"].ToString().ToUpper().Trim(); double num = 0; OleExec sfcdb = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); sfcdb.ThrowSqlExeception = true; T_R_WO_BASE t_r_wo_base = new T_R_WO_BASE(sfcdb, DBTYPE); R_WO_BASE r_wo_base = t_r_wo_base.GetWoByWoNo(wo, sfcdb); if (r_wo_base == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000164", new string[] { wo })); } try { num = Convert.ToDouble(Data["NUM"].ToString().ToUpper().Trim()); } catch { throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180731151259", new string[] { Data["NUM"].ToString().ToUpper().Trim() })); } if (num <= 0) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180731151259", new string[] { Data["NUM"].ToString().ToUpper().Trim() })); } if (r_wo_base.WORKORDER_QTY - r_wo_base.INPUT_QTY < num) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000208", new string[] { wo, num.ToString(), (r_wo_base.WORKORDER_QTY - r_wo_base.INPUT_QTY).ToString() })); } Row_R_WO_BASE rowWoBase = (Row_R_WO_BASE)t_r_wo_base.GetObjByID(r_wo_base.ID, sfcdb); rowWoBase.WORKORDER_QTY = r_wo_base.WORKORDER_QTY - Convert.ToDouble(num); if (closeFlag == "1") { rowWoBase.CLOSED_FLAG = closeFlag; rowWoBase.CLOSE_DATE = GetDBDateTime(); } rowWoBase.EDIT_EMP = LoginUser.EMP_NO; rowWoBase.EDIT_TIME = GetDBDateTime(); sfcdb.ExecSQL(rowWoBase.GetUpdateString(DBTYPE)); this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Data = r_wo_base; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000210"; StationReturn.MessagePara.Add(wo); StationReturn.MessagePara.Add(num); } catch (Exception exception) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(exception.Message); StationReturn.Data = exception.Message; if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } }
public override void Start() { string oldSql = ""; string newSql = ""; string runSql = ""; string codeName = ""; string codeValue = ""; string description = ""; string route = ""; DataTable dtNew = new DataTable(); DataTable dtOld = new DataTable(); DataTable dtRoute = new DataTable(); try { newSFCDB = new OleExec("HWDMES", false); oldSFCDB = new OleExec("HWD_OLD_SFCDB", false); newSFCDB.ThrowSqlExeception = true; oldSFCDB.ThrowSqlExeception = true; if (updateDate != "") { newSql = $@"select * from c_sku where to_date(to_char(edit_time,'yyyy/mm/dd'),'yyyy/mm/dd') =to_date('{updateDate}','yyyy/mm/dd')"; } else { newSql = "select * from c_sku where edit_time>sysdate-1"; } dtNew = newSFCDB.ExecSelect(newSql).Tables[0]; //WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";" + dtNew.Rows.Count + "; Copy sku type to old DB fail," , "", "interface"); //newSFCDB.CommitTrain(); foreach (DataRow row in dtNew.Rows) { if (row["SKUNO"].ToString() != "") { try { runSql = $@"select c.* from r_sku_route a,c_sku b,c_route c where a.sku_id=b.id and c.id=a.route_id and b.skuno='{row["SKUNO"].ToString()}'"; dtRoute = newSFCDB.ExecSelect(runSql).Tables[0]; if (dtRoute.Rows.Count == 0) { throw new Exception(row["SKUNO"].ToString() + " can't setting route!"); } route = dtRoute.Rows[0]["ROUTE_NAME"].ToString(); oldSql = $@"select * from sfccodelike where skuno='{row["SKUNO"].ToString()}'"; dtOld = oldSFCDB.ExecSelect(oldSql).Tables[0]; runSql = ""; if (dtOld.Rows.Count > 0) { if (row["SKU_TYPE"].ToString() != "" && dtOld.Rows[0]["CATEGORY"].ToString() != row["SKU_TYPE"].ToString()) { runSql = $@" update sfccodelike set category='{row["SKU_TYPE"].ToString()}' where skuno='{row["SKUNO"].ToString()}'"; } } else { if (row["SKU_NAME"].ToString() != "") { codeName = row["SKU_NAME"].ToString(); codeValue = row["SKU_NAME"].ToString(); } else { codeName = row["SKUNO"].ToString(); codeValue = row["SKUNO"].ToString(); } if (row["DESCRIPTION"].ToString() != "") { description = row["DESCRIPTION"].ToString(); } else { description = row["SKUNO"].ToString(); } if (row["VERSION"].ToString() == "") { throw new Exception(row["SKUNO"].ToString() + " the version is null!"); } if (row["SKU_TYPE"].ToString() != "") { runSql = $@"insert into sfccodelike (category,codename,codevalue,skuno,version,custpartno,sfcroute,createby,createdate,series,ctntype,pltype,description) values ('{row["SKU_TYPE"].ToString()}', '{codeName}', '{codeValue}', '{row["SKUNO"].ToString()}', '{row["VERSION"].ToString()}', '{row["CUST_PARTNO"].ToString()}', '{route}', '{row["EDIT_EMP"].ToString()}', sysdate, 'HWD','C','PL','{description}')"; } else { throw new Exception(row["SKUNO"].ToString() + " can't setting sku type!"); } } //WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";" + row["SKUNO"].ToString() + "; Copy sku type to old DB fail,", runSql, "interface"); //newSFCDB.CommitTrain(); if (runSql != "") { oldSFCDB.ExecSQL(runSql); oldSFCDB.CommitTrain(); } } catch (Exception ex) { WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";" + row["SKUNO"].ToString() + ";" + ex.Message.ToString(), "", "interface"); newSFCDB.CommitTrain(); } } } } catch (Exception ex) { throw new Exception("Start CopySkuTypeToOld Fail" + ex.Message); //WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";Copy sku type to old DB fail," + ex.Message.ToString(), "", "interface"); } }
private void WOToMRBBackFlush() { MRBGTList = new List <R_MRB_GT>(); MRBTable = new DataTable(); sql = $@" select * from r_mrb_gt where sap_flag = '0' and zcpp_flag = 0 and sap_station_code is not null "; MRBTable = SFCDB.RunSelect(sql).Tables[0]; if (MRBTable != null && MRBTable.Rows.Count > 0) { foreach (DataRow row in MRBTable.Rows) { rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.NewRow(); rowR_MRBGT.loadData(row); MRBGTList.Add(rowR_MRBGT.GetDataObject()); } } postDate = Interface.GetPostDate(SFCDB); if (MRBGTList != null && MRBGTList.Count > 0) { foreach (R_MRB_GT r_mrb_gt in MRBGTList) { rowR_MRBGT = null; rowH_MRBGT = null; logMessage = ""; zrfc_sfc_nsg_0020.SetValue("I_AUFNR", r_mrb_gt.WORKORDERNO); zrfc_sfc_nsg_0020.SetValue("I_BUDAT", postDate); zrfc_sfc_nsg_0020.SetValue("I_FLAG", r_mrb_gt.CONFIRMED_FLAG); zrfc_sfc_nsg_0020.SetValue("I_LGORT_TO", r_mrb_gt.TO_STORAGE); zrfc_sfc_nsg_0020.SetValue("I_LMNGA", r_mrb_gt.TOTAL_QTY.ToString()); zrfc_sfc_nsg_0020.SetValue("I_STATION", r_mrb_gt.SAP_STATION_CODE); rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.GetObjByID(r_mrb_gt.ID, SFCDB); try { rowR_MRBGT.SAP_FLAG = "1"; zrfc_sfc_nsg_0020.CallRFC(); } catch (Exception ex) { Interface.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.MrbBackFlush", "WOToMRBBackFlush", r_mrb_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO); rowR_MRBGT.SAP_FLAG = "2"; } SFCDB.ExecSQL(rowR_MRBGT.GetUpdateString(DB_TYPE_ENUM.Oracle)); logMessage = " M:" + zrfc_sfc_nsg_0020.GetValue("O_MESSAGE") + " M1:" + zrfc_sfc_nsg_0020.GetValue("O_MESSAGE1") + " M2" + zrfc_sfc_nsg_0020.GetValue("O_MESSAGE2"); rowH_MRBGT = (Row_H_MRB_GT)H_MRB_GT.NewRow(); rowH_MRBGT.ID = H_MRB_GT.GetNewID(BU, SFCDB); rowH_MRBGT.WORKORDERNO = r_mrb_gt.WORKORDERNO; rowH_MRBGT.SAP_STATION_CODE = r_mrb_gt.SAP_STATION_CODE; rowH_MRBGT.FROM_STORAGE = r_mrb_gt.FROM_STORAGE; rowH_MRBGT.TO_STORAGE = r_mrb_gt.TO_STORAGE; rowH_MRBGT.TOTAL_QTY = r_mrb_gt.TOTAL_QTY; rowH_MRBGT.CONFIRMED_FLAG = r_mrb_gt.CONFIRMED_FLAG; rowH_MRBGT.ZCPP_FLAG = r_mrb_gt.ZCPP_FLAG; rowH_MRBGT.SAP_FLAG = r_mrb_gt.SAP_FLAG; rowH_MRBGT.SKUNO = r_mrb_gt.SKUNO; rowH_MRBGT.SAP_MESSAGE = logMessage; rowH_MRBGT.EDIT_EMP = this.LoginUser.EMP_NO; rowH_MRBGT.EDIT_TIME = Interface.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle); SFCDB.ExecSQL(rowH_MRBGT.GetInsertString(DB_TYPE_ENUM.Oracle)); } } }
/// <summary> /// MRB 組裝退料拋賬 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void DoAssyToMrbBackFlush(JObject requestValue, JObject Data, MESStationReturn StationReturn) { try { SFCDB = DBPools["SFCDB"].Borrow(); R_MRB_GT = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); H_MRB_GT = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); zcpp_nsg_0091 = new ZCPP_NSBG_0091(); MRBGTList = new List <R_MRB_GT>(); MRBTable = new DataTable(); if (Interface.IsMonthly(SFCDB, DB_TYPE_ENUM.Oracle)) { //月結不給拋賬 throw new Exception("This time is monthly,can't BackFlush"); } IsRuning = synLock.IsLock("HWD_AssyToMrbBackFlush", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp); if (IsRuning) { throw new Exception("HWD AssyToMrbBackFlush interface is running on " + lockIp + ",Please try again later"); } synLock.SYNC_Lock(BU, this.IP, "HWD_AssyToMrbBackFlush", "HWD_AssyToMrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); sql = $@" select * from r_mrb_gt where sap_flag = 0 and zcpp_flag = 1 and sap_station_code is not null "; MRBTable = SFCDB.RunSelect(sql).Tables[0]; if (MRBTable != null && MRBTable.Rows.Count > 0) { foreach (DataRow row in MRBTable.Rows) { rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.NewRow(); rowR_MRBGT.loadData(row); MRBGTList.Add(rowR_MRBGT.GetDataObject()); } } postDate = Interface.GetPostDate(SFCDB); if (MRBGTList != null && MRBGTList.Count > 0) { foreach (R_MRB_GT r_mrb_gt in MRBGTList) { rowR_MRBGT = null; rowH_MRBGT = null; logMessage = ""; zcpp_nsg_0091.SetValue("I_WERKS", "WDN1"); zcpp_nsg_0091.SetValue("I_MATNR", r_mrb_gt.SKUNO); zcpp_nsg_0091.SetValue("I_LMNGA", r_mrb_gt.TOTAL_QTY.ToString()); zcpp_nsg_0091.SetValue("I_LGORT", r_mrb_gt.TO_STORAGE); zcpp_nsg_0091.SetValue("I_AUFNR", r_mrb_gt.FROM_STORAGE); zcpp_nsg_0091.SetValue("I_BUDAT", postDate); rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.GetObjByID(r_mrb_gt.ID, SFCDB); try { zcpp_nsg_0091.CallRFC(); if (zcpp_nsg_0091.GetValue("O_MESSAGE").IndexOf("Material not exsit,pls check!") >= 0) { rowR_MRBGT.SAP_FLAG = "2"; } else { rowR_MRBGT.SAP_FLAG = "1"; } } catch (Exception ex) { Interface.WriteIntoMESLog(SFCDB, BU, "MESStation", "MESStation.Interface.MrbBackFlush", "AssyToMrbBackFlush", r_mrb_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO); rowR_MRBGT.SAP_FLAG = "1"; } SFCDB.ExecSQL(rowR_MRBGT.GetUpdateString(DB_TYPE_ENUM.Oracle)); logMessage = "M:" + zcpp_nsg_0091.GetValue("O_MESSAGE"); rowH_MRBGT = (Row_H_MRB_GT)H_MRB_GT.NewRow(); rowH_MRBGT.ID = H_MRB_GT.GetNewID(BU, SFCDB); rowH_MRBGT.WORKORDERNO = r_mrb_gt.WORKORDERNO; rowH_MRBGT.SAP_STATION_CODE = r_mrb_gt.SAP_STATION_CODE; rowH_MRBGT.FROM_STORAGE = r_mrb_gt.FROM_STORAGE; rowH_MRBGT.TO_STORAGE = r_mrb_gt.TO_STORAGE; rowH_MRBGT.TOTAL_QTY = r_mrb_gt.TOTAL_QTY; rowH_MRBGT.CONFIRMED_FLAG = r_mrb_gt.CONFIRMED_FLAG; rowH_MRBGT.ZCPP_FLAG = r_mrb_gt.ZCPP_FLAG; rowH_MRBGT.SAP_FLAG = r_mrb_gt.SAP_FLAG; rowH_MRBGT.SKUNO = r_mrb_gt.SKUNO; rowH_MRBGT.SAP_MESSAGE = logMessage; rowH_MRBGT.EDIT_EMP = this.LoginUser.EMP_NO; rowH_MRBGT.EDIT_TIME = Interface.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle); SFCDB.ExecSQL(rowH_MRBGT.GetInsertString(DB_TYPE_ENUM.Oracle)); } } synLock.SYNC_UnLock(BU, this.IP, "HWD_AssyToMrbBackFlush", "HWD_AssyToMrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); if (SFCDB != null) { DBPools["SFCDB"].Return(SFCDB); } StationReturn.Status = StationReturnStatusValue.Pass; } catch (Exception exception) { StationReturn.Status = StationReturnStatusValue.Fail; throw exception; } }
public void UpdateWorkClass(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string strID = Data["CLASS_ID"].ToString().Trim(); string newClassName = Data["NEW_CLASS_NAME"].ToString().Trim(); string startTime = Data["START_TIME"].ToString().Trim(); string endTime = Data["END_TIME"].ToString().Trim(); OleExec oleDB = null; T_C_WORK_CLASS workClass = null; Row_C_WORK_CLASS workClassRow = null; if (string.IsNullOrEmpty(strID)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("CLASS ID"); StationReturn.Data = ""; return; } if (string.IsNullOrEmpty(startTime)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("START TIME"); StationReturn.Data = ""; return; } if (string.IsNullOrEmpty(endTime)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("END TIME"); StationReturn.Data = ""; return; } try { oleDB = this.DBPools["SFCDB"].Borrow(); workClass = new T_C_WORK_CLASS(oleDB, DBTYPE); workClassRow = (Row_C_WORK_CLASS)workClass.NewRow(); if (!workClass.WorkClassIsExistByID(strID, oleDB)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000007"; StationReturn.Data = ""; } else if (!string.IsNullOrEmpty(newClassName) && workClass.WorkClassIsExistByName(newClassName, oleDB)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000008"; StationReturn.MessagePara.Add(newClassName); StationReturn.Data = ""; } else { workClassRow = (Row_C_WORK_CLASS)workClass.GetObjByID(strID, oleDB, DBTYPE); if (!string.IsNullOrEmpty(newClassName)) { workClassRow.NAME = newClassName; } if (!string.IsNullOrEmpty(startTime)) { workClassRow.START_TIME = startTime; } if (!string.IsNullOrEmpty(endTime)) { workClassRow.END_TIME = endTime; } oleDB.ThrowSqlExeception = true; oleDB.ExecSQL(workClassRow.GetUpdateString(DBTYPE)); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000003"; StationReturn.Data = ""; } this.DBPools["SFCDB"].Return(oleDB); } catch (Exception exception) { this.DBPools["SFCDB"].Return(oleDB); throw exception; } }
/// <summary> /// FQC Lot 過站 /// </summary> /// <param name="SerialNo"></param> /// <param name="LotNo"></param> /// <param name="PassOrFail"></param> /// <param name="EmpNo"></param> /// <param name="Station"></param> /// <param name="Line"></param> /// <param name="BU"></param> /// <param name="DB"></param> /// <param name="FailInfos"></param> public void LotPassStation(string SerialNo, string LotNo, string PassOrFail, string EmpNo, string Station, string DeviceName, string Line, string BU, OleExec DB, params string[] FailInfos) { bool PassedFlag = true; string sql = string.Empty; DataTable dt = new DataTable(); Row_R_LOT_STATUS StatusRow = (Row_R_LOT_STATUS)NewRow(); T_R_LOT_DETAIL DetailTable = new T_R_LOT_DETAIL(DB, this.DBType); Row_R_LOT_DETAIL DetailRow = (Row_R_LOT_DETAIL)DetailTable.NewRow(); R_LOT_STATUS Status = null; R_LOT_DETAIL Detail = null; T_R_SN SnTable = new T_R_SN(DB, this.DBType); List <string> LotsSN = new List <string>(); if (this.DBType == DB_TYPE_ENUM.Oracle) { PassedFlag = PassOrFail.ToUpper().Equals("PASS") ? true : false; //sql = $@"SELECT * FROM R_LOT_STATUS WHERE LOT_NO='{LotNo}' AND SAMPLE_STATION='{Station}' AND LINE='{Line}'"; //判斷有沒有 LOT sql = $@"SELECT * FROM R_LOT_STATUS WHERE LOT_NO='{LotNo}' AND SAMPLE_STATION='{Station}'"; //判斷有沒有 LOT dt = DB.ExecSelect(sql).Tables[0]; if (dt.Rows.Count > 0) { StatusRow.loadData(dt.Rows[0]); Status = StatusRow.GetDataObject(); sql = $@"SELECT A.* FROM R_LOT_DETAIL A,R_SN B WHERE LOT_ID='{StatusRow.ID}' AND B.SN='{SerialNo}' AND A.SN=B.SN"; //判斷Lot中有沒有這個SN並且沒有被抽檢過 dt = DB.ExecSelect(sql).Tables[0]; if (dt.Rows.Count > 0) { DetailRow.loadData(dt.Rows[0]); Detail = DetailRow.GetDataObject(); if (Detail.SAMPLING.Equals("1")) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000093", new string[] { SerialNo })); } } else { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000094", new string[] { SerialNo, LotNo })); } if (Status.CLOSED_FLAG == "1") //Lot 關閉 { if (PassedFlag) { //更新 R_LOT_DETAIL STATUS Detail.STATUS = "1"; //1 表示抽檢通過 Detail.SAMPLING = "1"; //1 表示被抽檢了 //更新 R_LOT_STATUS PASS_QTY Status.PASS_QTY++; } else { //更新 R_LOT_DETAIL STATUS ,FAIL_CODE,FAIL_LOCATION,DESCRIPTION Detail.STATUS = "0"; //0 表示抽檢失敗 Detail.SAMPLING = "1"; //1 表示被抽檢了 if (FailInfos != null && FailInfos.Length == 3) //記錄失敗原因 { Detail.FAIL_CODE = FailInfos[0]; Detail.FAIL_LOCATION = FailInfos[1]; Detail.DESCRIPTION = FailInfos[2]; } //更新 R_LOT_STATUS FAIL_QTY Status.FAIL_QTY++; } if (Status.FAIL_QTY >= Status.REJECT_QTY && Status.FAIL_QTY != 0) { //更新 R_LOT_STATUS 關閉,NG, //Status.CLOSED_FLAG = "1";// 1 表示關閉Lot Status.LOT_STATUS_FLAG = "2";// 2 表示整個 Lot 不良 //更新 R_LOT_DETAIL 鎖定LOT 中所有 Detail.EDIT_EMP = EmpNo; Detail.EDIT_TIME = GetDBDateTime(DB); DetailRow.ConstructRow(Detail); DB.ExecSQL(DetailRow.GetUpdateString(this.DBType)); //該批次鎖定--add by Eden 2018-05-04 sql = $@"update r_lot_detail set sampling='4' where lot_id='{Detail.LOT_ID}'"; DB.ExecSQL(sql); //DetailTable.LockLotBySn(SerialNo, EmpNo, DB); } else { if (Status.PASS_QTY + Status.FAIL_QTY >= Status.SAMPLE_QTY) { //更新 R_LOT_STATUS 關閉,OK //Status.CLOSED_FLAG = "1"; Status.LOT_STATUS_FLAG = "1"; // 1 表示整個 Lot 正常 //更新 R_LOT_DETAIL 鎖定FAIL 的,其他的正常過站 //sql = $@"SELECT * FROM R_LOT_DETAIL WHERE LOT_ID='{StatusRow.ID}' AND STATUS='0'"; sql = $@"SELECT * FROM R_LOT_DETAIL WHERE LOT_ID='{StatusRow.ID}' AND ((SAMPLING='1' AND STATUS='1') OR (SAMPLING='0'))"; dt = DB.ExecSelect(sql).Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { LotsSN.Add(dr["SN"].ToString()); } SnTable.LotsPassStation(LotsSN, Line, Station, DeviceName, BU, PassOrFail, EmpNo, DB); // 過站 } //記錄通過數 ,UPH foreach (string SN in LotsSN) { SnTable.RecordYieldRate(Detail.WORKORDERNO, 1, SN, "PASS", Line, Station, EmpNo, BU, DB); SnTable.RecordUPH(Detail.WORKORDERNO, 1, SN, "PASS", Line, Station, EmpNo, BU, DB); } } Detail.EDIT_EMP = EmpNo; Detail.EDIT_TIME = GetDBDateTime(DB); DetailRow.ConstructRow(Detail); DB.ExecSQL(DetailRow.GetUpdateString(this.DBType)); } Status.EDIT_EMP = EmpNo; Status.EDIT_TIME = GetDBDateTime(DB); StatusRow.ConstructRow(Status); DB.ExecSQL(StatusRow.GetUpdateString(this.DBType)); } else { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000201", new string[] { LotNo })); } } else { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000091", new string[] { LotNo })); } } else { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000019", new string[] { DBType.ToString() }); throw new MESReturnMessage(errMsg); } }
public List <C_INTERFACE> UpdateNextRunTime(string BU, string IP, string Program_Name, string Item_Name, string Emp_No, OleExec DB, DB_TYPE_ENUM DBType) { string Message = ""; string StrRunType = ""; string StrTimeList = ""; string StrTime = ""; string StrNextTime = ""; string StrDate = ""; string[] ArryStrTime = null; string StrAddDay = ""; Int64 IntMinRuntime = 0; Int64 IntMaxRuntime = 0; List <C_INTERFACE> ListInterface = new List <C_INTERFACE>(); try { Dictionary <string, string> Dic_Interface = new Dictionary <string, string>(); //string StrSql = $@"SELECT * from C_INTERFACE where program_name='{Program_Name}' and Item_Name={Item_Name}"; DataTable Dt = GetItemInfo(Program_Name, Item_Name, DB); string StrSql_Update = ""; DataTable DtTime = null; if (Dt.Rows.Count >= 0) { StrRunType = Dt.Rows[0]["RUN_TYPE"].ToString(); StrTimeList = Dt.Rows[0]["RUN_TIME"].ToString(); DtTime = GetCurrentDate(DB, StrTimeList); StrTime = DtTime.Rows[0]["CurrentTime"].ToString(); StrDate = DtTime.Rows[0]["CurrentDate"].ToString(); if (StrRunType == "0") { if (Convert.ToDateTime(Dt.Rows[0]["NEXT_RUN_DATE"].ToString()) <= Convert.ToDateTime(StrDate)) { StrSql_Update = $@"update C_INTERFACE set last_run_date=next_run_date,next_run_date=SYSDATE+to_number({ StrTimeList})/24 where program_name='{Program_Name}' and item_name='{Item_Name}' "; DB.ExecSQL(StrSql_Update); } } else { StrTimeList = Dt.Rows[0]["RUN_TIME"].ToString(); ArryStrTime = StrTimeList.Split(','); if (ArryStrTime.Length > 0) { IntMinRuntime = Convert.ToInt64(ArryStrTime[0].ToString().Replace(":", "").ToString()); IntMaxRuntime = Convert.ToInt64(ArryStrTime[ArryStrTime.Length - 1].ToString().Replace(":", "").ToString()); if (Convert.ToInt64(StrTime.Replace(":", "").ToString()) <= IntMinRuntime) { StrNextTime = ArryStrTime[0].ToString(); } else if (Convert.ToInt64(StrTime.Replace(":", "").ToString()) >= IntMaxRuntime) { StrAddDay = "1"; StrNextTime = ArryStrTime[0].ToString(); } else { for (int i = 1; i < ArryStrTime.Length; i++) { if (Convert.ToInt64(StrTime.Replace(":", "").ToString()) <= Convert.ToInt64(ArryStrTime[i].ToString().Replace(":", "").ToString())) { StrNextTime = ArryStrTime[i].ToString(); } } } if (StrNextTime != "") { if (StrAddDay == "1") { StrSql_Update = $@"update C_INTERFACE set last_run_date=next_run_date,next_run_date=TO_DATE(TO_CHAR(SYSDATE+1,'YYYY-MM-DD')||'{StrNextTime}','YYYY-MM-DD HH24:MI:SS') where program_name='{Program_Name}' and item_name='{Item_Name}' "; } else { StrSql_Update = $@"update C_INTERFACE set last_run_date=next_run_date,next_run_date=TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD')||'{StrNextTime}','YYYY-MM-DD HH24:MI:SS') where program_name='{Program_Name}' and item_name='{Item_Name}' "; } } DB.ExecSQL(StrSql_Update); } } } ListInterface = GetInterfaceStatus(BU, IP, Program_Name, Item_Name, Emp_No, DB, DBType); } catch (Exception ex) { throw (ex); } return(ListInterface); }
public string EditWoText(string EditSql, OleExec DB, DB_TYPE_ENUM DBType) { string ReturnMsg = DB.ExecSQL(EditSql); return(ReturnMsg); }
public static string GetNextSN(string RuleName, OleExec DB, string WO) { Row_C_SN_RULE root = null; List <Row_C_SN_RULE_DETAIL> detail = null; if (_Root.ContainsKey(RuleName)) { root = _Root[RuleName]; } else { T_C_SN_RULE TCSR = new T_C_SN_RULE(DB, MESDataObject.DB_TYPE_ENUM.Oracle); root = TCSR.GetDataByName(RuleName, DB); _Root.Add(RuleName, root); } if (_Detail.ContainsKey(RuleName)) { detail = _Detail[RuleName]; } else { T_C_SN_RULE_DETAIL TCSRD = new T_C_SN_RULE_DETAIL(DB, MESDataObject.DB_TYPE_ENUM.Oracle); detail = TCSRD.GetDataByRuleID(root.ID, DB); _Detail.Add(RuleName, detail); } string SN = ""; bool ResetFlag = false; for (int i = 0; i < detail.Count; i++) { detail[i].LockMe(DB); if (detail[i].INPUTTYPE == "PREFIX") { SN += detail[i].CURVALUE; } else if (detail[i].INPUTTYPE == "YYYY" || detail[i].INPUTTYPE == "MM" || detail[i].INPUTTYPE == "DD") { string codeType = detail[i].CODETYPE; List <Row_C_CODE_MAPPING> CodeMapping = null; if (_CodeMapping.ContainsKey(codeType)) { CodeMapping = _CodeMapping[codeType]; } else { T_C_CODE_MAPPING TCCM = new T_C_CODE_MAPPING(DB, DB_TYPE_ENUM.Oracle); CodeMapping = TCCM.GetDataByName(codeType, DB); if (CodeMapping != null) { _CodeMapping.Add(codeType, CodeMapping); } } string VALUE = null; switch (detail[i].INPUTTYPE) { case "YYYY": VALUE = DateTime.Now.Year.ToString(); break; case "MM": VALUE = DateTime.Now.Month.ToString(); break; case "DD": VALUE = DateTime.Now.Day.ToString(); break; } Row_C_CODE_MAPPING TAG = CodeMapping.Find(T => T.VALUE == VALUE); if (detail[i].CURVALUE != TAG.CODEVALUE) { detail[i].CURVALUE = TAG.CODEVALUE; if (detail[i].RESETSN_FLAG == 1) { ResetFlag = true; } } SN += detail[i].CURVALUE; } else if (detail[i].INPUTTYPE == "WK") { string wk = detail[i].CODETYPE; string sql = $@"SELECT TO_CHAR(SYSDATE,'{wk}') FROM DUAL"; string currentWK = (string)DB.ExecSelectOneValue(sql); SN += currentWK; } else if (detail[i].INPUTTYPE == "SQL") { string sql = detail[i].CURVALUE; sql = sql.Replace("{WO}", WO); string value = (string)DB.ExecSelectOneValue(sql); SN += value; } else if (detail[i].INPUTTYPE == "SN") { if (ResetFlag) { detail[i].VALUE10 = detail[i].RESETVALUE; } string codeType = detail[i].CODETYPE; List <Row_C_CODE_MAPPING> CodeMapping = null; if (_CodeMapping.ContainsKey(codeType)) { CodeMapping = _CodeMapping[codeType]; } else { T_C_CODE_MAPPING TCCM = new T_C_CODE_MAPPING(DB, DB_TYPE_ENUM.Oracle); CodeMapping = TCCM.GetDataByName(codeType, DB); if (CodeMapping != null) { _CodeMapping.Add(codeType, CodeMapping); } } int curValue = int.Parse(detail[i].VALUE10); curValue++; detail[i].VALUE10 = curValue.ToString(); int T = CodeMapping.Count; string sn = ""; while (curValue / T != 0) { int R = curValue % T; sn = CodeMapping[R].CODEVALUE + sn; curValue = curValue / T; } sn = CodeMapping[curValue].CODEVALUE + sn; if (sn.Length < detail[i].CURVALUE.Length) { for (int k = 0; detail[i].CURVALUE.Length != sn.Length; k++) { sn = "0" + sn; } } if (sn.Length > detail[i].CURVALUE.Length) { throw new Exception("生成的SN超過最大值!"); } detail[i].CURVALUE = sn; SN += detail[i].CURVALUE; } int T1 = 0; detail[i].EDIT_TIME = DateTime.Now; string ret = DB.ExecSQL(detail[i].GetUpdateString(DB_TYPE_ENUM.Oracle)); if (!Int32.TryParse(ret, out T1)) { throw new Exception("更新序列值出錯!" + ret); } } int T2 = 0; root.CURVALUE = SN; string ret1 = DB.ExecSQL(root.GetUpdateString(DB_TYPE_ENUM.Oracle)); if (!Int32.TryParse(ret1, out T2)) { throw new Exception("更新序列值出錯!" + ret1); } return(SN); }
/// <summary> /// 創建新用戶 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void RegisterNewUser(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_c_user USER; try { sfcdb = this.DBPools["SFCDB"].Borrow(); USER = new T_c_user(sfcdb, DBTYPE); Row_c_user UserRow = (Row_c_user)USER.NewRow(); UserRow.ID = USER.GetNewID(BU, sfcdb); UserRow.FACTORY = Data["FACTORY"].ToString(); UserRow.BU_NAME = Data["BU_NAME"].ToString(); UserRow.EMP_NO = Data["EMP_NO"].ToString(); UserRow.EMP_PASSWORD = Data["EMP_PASSWORD"].ToString(); UserRow.EMP_NAME = Data["EMP_NAME"].ToString(); UserRow.EMP_LEVEL = "0";//Data["EMP_LEVEL"].ToString();///創建用戶默認全部為普通用戶 0表示普通用戶,1表示可編輯本部門角色權限的用戶,9表示後台管理,能操作權限相關的任何動作 UserRow.DPT_NAME = Data["DPT_NAME"].ToString(); UserRow.POSITION_NAME = Data["POSITION_NAME"].ToString(); UserRow.MAIL_ADDRESS = Data["MAIL_ADDRESS"].ToString().ToLower(); UserRow.PHONE_NUMBER = Data["PHONE_NUMBER"].ToString(); UserRow.LOCATION = Data["LOCATION"].ToString(); UserRow.LOCK_FLAG = "N"; UserRow.AGENT_EMP_NO = Data["AGENT_EMP_NO"].ToString(); UserRow.CHANGE_PASSWORD_TIME = GetDBDateTime(); UserRow.EMP_DESC = Data["EMP_DESC"].ToString(); UserRow.EDIT_TIME = GetDBDateTime(); UserRow.EDIT_EMP = Data["EMP_NO"].ToString(); UserRow.EMP_EN_NAME = Data["EMP_EN_NAME"].ToString(); if (Data["FACTORY"].ToString() == null) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = ""; return; } if (Data["BU_NAME"].ToString() == null) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "廠別為空"; return; } if (Data["EMP_NO"].ToString() == null) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "工號為空"; return; } if (Data["DPT_NAME"].ToString() == null) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "所屬部門"; return; } if (Data["EMP_NAME"].ToString() == null) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "員工姓名為空"; return; } ///CHECK 用戶密碼 string STRPWD = USER.CheckPWD(Data["EMP_PASSWORD"].ToString(), sfcdb); if (STRPWD != "Pass") { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = STRPWD; return; } /// CHECK EMAIL地址 string STRMAIL = USER.CheckMail(Data["MAIL_ADDRESS"].ToString().ToLower(), sfcdb); if (STRMAIL != "Pass") { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = STRMAIL; return; } ///CHECK 電話號碼 if (!USER.CheckPhone(Data["PHONE_NUMBER"].ToString(), sfcdb)) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "电话号码填寫格式不正確"; return; } DataTable userstr = new DataTable(); userstr = USER.SelectC_Userbyempno(UserRow.EMP_NO, sfcdb, this.DBTYPE); if (userstr.Rows.Count != 0) { this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000012"; this.DBPools["SFCDB"].Return(sfcdb); } else { string strRet = sfcdb.ExecSQL(UserRow.GetInsertString(this.DBTYPE)); if (strRet == "1") { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000013"; this.DBPools["SFCDB"].Return(sfcdb); } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000014"; this.DBPools["SFCDB"].Return(sfcdb); } } } catch (Exception e) { this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
/// <summary> /// 記錄良率 /// </summary> /// <param name="WorkOrder"></param> /// <param name="SerialNo"></param> /// <param name="Status"></param> /// <param name="Day"></param> /// <param name="Time"></param> /// <param name="Line"></param> /// <param name="Station"></param> /// <param name="EmpNo"></param> /// <param name="Bu"></param> /// <param name="DB"></param> /// <returns></returns> public string RecordTCQSYieldRate(R_TCQS_YIELD_RATE_DETAIL RTYRD, string SerialNo, string Bu, OleExec DB) { string result = string.Empty; string sql = string.Empty; DataTable dt = new DataTable(); T_R_TCQS_YIELD_RATE_DETAIL TRTYRD = null; Row_R_TCQS_YIELD_RATE_DETAIL RRTYRD = null; T_R_TMP_ATEDATA_T TRTAT = null; Row_R_TMP_ATEDATA_T RRTAT = null; T_R_SN_DETAIL TRSD = null; Row_R_SN_DETAIL RRSD = null; if (this.DBType == DB_TYPE_ENUM.Oracle) { //更新R_TCQS_YIELD_RATE_DETAIL TRTYRD = new T_R_TCQS_YIELD_RATE_DETAIL(DB, this.DBType); RRTYRD = (Row_R_TCQS_YIELD_RATE_DETAIL)TRTYRD.NewRow(); sql = $@"Select * From R_TCQS_YIELD_RATE_DETAIL Where WORK_DATE='{RTYRD.WORK_DATE}' and Work_Time='{RTYRD.WORK_TIME}' and PRODUCTION_LINE='{RTYRD.PRODUCTION_LINE}' and CLASS_NAME='{RTYRD.CLASS_NAME}' and STATION_NAME='{RTYRD.STATION_NAME}' and DEVICE_NAME='{RTYRD.DEVICE_NAME}' and WORKORDERNO='{RTYRD.WORKORDERNO}' "; dt = DB.ExecSelect(sql).Tables[0]; //如果記錄已經存在 if (dt.Rows.Count > 0) { RRTYRD.loadData(dt.Rows[0]); RRTYRD.TOTAL_FRESH_BUILD_QTY += RTYRD.TOTAL_FRESH_BUILD_QTY; RRTYRD.TOTAL_FRESH_PASS_QTY += RTYRD.TOTAL_FRESH_PASS_QTY; RRTYRD.TOTAL_FRESH_FAIL_QTY += RTYRD.TOTAL_FRESH_FAIL_QTY; RRTYRD.TOTAL_REWORK_BUILD_QTY += RTYRD.TOTAL_REWORK_BUILD_QTY; RRTYRD.TOTAL_REWORK_PASS_QTY += RTYRD.TOTAL_REWORK_PASS_QTY; RRTYRD.TOTAL_REWORK_FAIL_QTY += RTYRD.TOTAL_REWORK_FAIL_QTY; RRTYRD.TCQS_FRESH_BUILD_QTY += RTYRD.TCQS_FRESH_BUILD_QTY; RRTYRD.TCQS_FRESH_PASS_QTY += RTYRD.TCQS_FRESH_PASS_QTY; RRTYRD.TCQS_FRESH_FAIL_QTY += RTYRD.TCQS_FRESH_FAIL_QTY; RRTYRD.TCQS_REWORK_BUILD_QTY += RTYRD.TCQS_REWORK_BUILD_QTY; RRTYRD.TCQS_REWORK_PASS_QTY += RTYRD.TCQS_REWORK_PASS_QTY; RRTYRD.TCQS_REWORK_FAIL_QTY += RTYRD.TCQS_REWORK_FAIL_QTY; RRTYRD.EDIT_EMP = RTYRD.EDIT_EMP; RRTYRD.EDIT_TIME = RTYRD.EDIT_TIME; sql = RRTYRD.GetUpdateString(this.DBType); } else//記錄不存在,則Insert { RRTYRD.ID = TRTYRD.GetNewID(Bu, DB); RRTYRD.WORK_DATE = RTYRD.WORK_DATE; RRTYRD.WORK_TIME = RTYRD.WORK_TIME; RRTYRD.PRODUCTION_LINE = RTYRD.PRODUCTION_LINE; RRTYRD.CLASS_NAME = RTYRD.CLASS_NAME; RRTYRD.STATION_NAME = RTYRD.STATION_NAME; RRTYRD.DEVICE_NAME = RTYRD.DEVICE_NAME; RRTYRD.WORKORDERNO = RTYRD.WORKORDERNO; RRTYRD.SKUNO = RTYRD.SKUNO; RRTYRD.SKU_NAME = RTYRD.SKU_NAME; RRTYRD.SKU_SERIES = RTYRD.SKU_SERIES; RRTYRD.TOTAL_FRESH_BUILD_QTY = RTYRD.TOTAL_FRESH_BUILD_QTY; RRTYRD.TOTAL_FRESH_PASS_QTY = RTYRD.TOTAL_FRESH_PASS_QTY; RRTYRD.TOTAL_FRESH_FAIL_QTY = RTYRD.TOTAL_FRESH_FAIL_QTY; RRTYRD.TOTAL_REWORK_BUILD_QTY = RTYRD.TOTAL_REWORK_BUILD_QTY; RRTYRD.TOTAL_REWORK_PASS_QTY = RTYRD.TOTAL_REWORK_PASS_QTY; RRTYRD.TOTAL_REWORK_FAIL_QTY = RTYRD.TOTAL_REWORK_FAIL_QTY; RRTYRD.TCQS_FRESH_BUILD_QTY = RTYRD.TCQS_FRESH_BUILD_QTY; RRTYRD.TCQS_FRESH_PASS_QTY = RTYRD.TCQS_FRESH_PASS_QTY; RRTYRD.TCQS_FRESH_FAIL_QTY = RTYRD.TCQS_FRESH_FAIL_QTY; RRTYRD.TCQS_REWORK_BUILD_QTY = RTYRD.TCQS_REWORK_BUILD_QTY; RRTYRD.TCQS_REWORK_PASS_QTY = RTYRD.TCQS_REWORK_PASS_QTY; RRTYRD.TCQS_REWORK_FAIL_QTY = RTYRD.TCQS_REWORK_FAIL_QTY; RRTYRD.EDIT_EMP = RTYRD.EDIT_EMP; RRTYRD.EDIT_TIME = RTYRD.EDIT_TIME; sql = RRTYRD.GetInsertString(this.DBType); } try { result = DB.ExecSQL(sql); //如果數據更新成功,則返回數據更新的記錄數,如果為Begn...END返回為-1,可被 Int32.Parse 方法轉換成 int if (Int32.Parse(result) < -1) { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TCQS_YIELD_RATE_DETAIL" }); throw new MESReturnMessage(errMsg + ":" + result); } }catch (Exception ee)//執行SQL異常 { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TCQS_YIELD_RATE_DETAIL" }); throw new MESReturnMessage(errMsg + ":" + ee.Message); } //更新R_TMP_ATEDATA_T if (RTYRD.TOTAL_FRESH_BUILD_QTY + RTYRD.TOTAL_REWORK_BUILD_QTY > 0)//如果是過站處理,則刪除臨時表記錄 { sql = $@"Delete From R_TMP_ATEDATA_T Where SN='{SerialNo}' and Station_Name='{RTYRD.STATION_NAME}' "; } else { TRTAT = new T_R_TMP_ATEDATA_T(DB, this.DBType); RRTAT = (Row_R_TMP_ATEDATA_T)TRTAT.NewRow(); sql = $@"SELECT * FROM r_tmp_atedata_t WHERE Station_Name = '{RTYRD.STATION_NAME}' AND SN = '{SerialNo}' "; dt = DB.ExecSelect(sql).Tables[0]; //如果記錄已經存在,則Update if (dt.Rows.Count > 0) { RRTAT.loadData(dt.Rows[0]); RRTAT.DEVICE_NAME = RTYRD.DEVICE_NAME; RRTAT.PASS_COUNT = RRTAT.PASS_COUNT + RTYRD.TCQS_FRESH_PASS_QTY + RTYRD.TCQS_REWORK_PASS_QTY; RRTAT.RETEST_COUNT = RRTAT.RETEST_COUNT + RTYRD.TCQS_FRESH_FAIL_QTY + RTYRD.TCQS_REWORK_FAIL_QTY; sql = RRTAT.GetUpdateString(this.DBType); } else //記錄不存在則Insert { RRTAT.ID = TRTAT.GetNewID(Bu, DB); RRTAT.WORKORDERNO = RTYRD.WORKORDERNO; RRTAT.SKUNO = RTYRD.SKUNO; RRTAT.SN = SerialNo; RRTAT.PRODUCTION_LINE = RTYRD.PRODUCTION_LINE; RRTAT.SECTION_NAME = "1"; RRTAT.STATION_NAME = RTYRD.STATION_NAME; RRTAT.DEVICE_NAME = RTYRD.DEVICE_NAME; RRTAT.PASS_COUNT = RTYRD.TCQS_FRESH_PASS_QTY + RTYRD.TCQS_REWORK_PASS_QTY; RRTAT.RETEST_COUNT = RTYRD.TCQS_FRESH_FAIL_QTY + RTYRD.TCQS_REWORK_FAIL_QTY; RRTAT.EDIT_EMP = RTYRD.EDIT_EMP; RRTAT.EDIT_TIME = RTYRD.EDIT_TIME; sql = RRTYRD.GetInsertString(this.DBType); } } try { result = DB.ExecSQL(sql); //如果數據更新成功,則返回數據更新的記錄數,如果為Begn...END返回為-1,可被 Int32.Parse 方法轉換成 int if (Int32.Parse(result) < -1) { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TMP_ATEDATA_T" }); throw new MESReturnMessage(errMsg + ":" + result); } } catch (Exception ee)//執行SQL異常 { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TMP_ATEDATA_T" }); throw new MESReturnMessage(errMsg + ":" + ee.Message); } //更新R_SN_DETAIL TRSD = new T_R_SN_DETAIL(DB, this.DBType); RRSD = (Row_R_SN_DETAIL)TRSD.NewRow(); RRSD.ID = TRSD.GetNewID(Bu, DB); RRSD.SN = SerialNo; RRSD.SKUNO = RTYRD.SKUNO; RRSD.WORKORDERNO = RTYRD.WORKORDERNO; RRSD.LINE = RTYRD.PRODUCTION_LINE; RRSD.STATION_NAME = RTYRD.STATION_NAME; RRSD.DEVICE_NAME = RTYRD.DEVICE_NAME; RRSD.CLASS_NAME = RTYRD.CLASS_NAME; //如果以PASS過站,則Flag=1 if (RTYRD.TOTAL_FRESH_PASS_QTY + RTYRD.TOTAL_REWORK_PASS_QTY > 0) { RRSD.RESULT_FLAG = "1"; } else if (RTYRD.TOTAL_FRESH_FAIL_QTY + RTYRD.TOTAL_REWORK_FAIL_QTY > 0) //如果以Fail進維修,則Flag=0 { RRSD.RESULT_FLAG = "0"; } else if (RTYRD.TCQS_FRESH_PASS_QTY + RTYRD.TCQS_REWORK_PASS_QTY > 0)//如果PASS但不過站,則Flag=2 { RRSD.RESULT_FLAG = "2"; } else//如果FAIL但不過站,則Flag=3 { RRSD.RESULT_FLAG = "3"; } RRSD.EDIT_EMP = RTYRD.EDIT_EMP; RRSD.EDIT_TIME = RTYRD.EDIT_TIME; sql = RRSD.GetInsertString(this.DBType); try { result = DB.ExecSQL(sql); //如果數據更新成功,則返回數據更新的記錄數,如果為Begn...END返回為-1,可被 Int32.Parse 方法轉換成 int if (Int32.Parse(result) < -1) { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_SN_DETAIL" }); throw new MESReturnMessage(errMsg + ":" + result); } } catch (Exception ee)//執行SQL異常 { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_SN_DETAIL" }); throw new MESReturnMessage(errMsg + ":" + ee.Message); } return(result); } else { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000019", new string[] { DBType.ToString() }); throw new MESReturnMessage(errMsg); } }
/// <summary> /// Delete Expand Info by id and seq_no /// <param name="db"></param> /// <param name="id"></param> /// <param name="seq_no"></param> /// <returns></returns> public string DeleteExpandInfo(OleExec db, string id, int seq_no) { string sql = $@"delete {this.TableName} where id='{id}' and seq_no={seq_no}"; return(db.ExecSQL(sql)); }
public void DoJobStockGT(JObject requestValue, JObject Data, MESStationReturn StationReturn) { OleExec SFCDB = DBPools["SFCDB"].Borrow(); try { ZRFC_SFC_NSG_0020 zrfc_sfc_nsg_0020 = new ZRFC_SFC_NSG_0020(this.BU); string lockIp = ""; string postDate; string o_flag = ""; string o_flag1 = ""; string o_flag2 = ""; string o_message = ""; string o_message1 = ""; string o_message2 = ""; bool IsRuning = false; Row_R_STOCK_GT rowStockGT; DataTable table = new DataTable(); SFCDB.ThrowSqlExeception = true; T_R_SYNC_LOCK t_r_sync_lock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); T_R_STOCK_GT t_r_stock_gt = new T_R_STOCK_GT(SFCDB, DB_TYPE_ENUM.Oracle); T_R_STOCK t_r_stock = new T_R_STOCK(SFCDB, DB_TYPE_ENUM.Oracle); if (Interface.IsMonthly(SFCDB, DB_TYPE_ENUM.Oracle)) { //月結不給拋賬 //throw new Exception("This time is monthly,can't BackFlush"); throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180803152122", new string[] { })); } IsRuning = t_r_sync_lock.IsLock("JOBSTOCKGT", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp); if (IsRuning) { //throw new Exception("JOBSTOCKGT interface is running on " + lockIp + ",Please try again later"); throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180803152222", new string[] { lockIp })); } t_r_sync_lock.SYNC_Lock(BU, this.IP, "JOBSTOCKGT", "JOBSTOCKGT", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); List <R_STOCK_GT> GTList = t_r_stock_gt.GetNotGTListByConfirmedFlag("0", SFCDB); postDate = Interface.GetPostDate(SFCDB); if (GTList != null && GTList.Count > 0) { foreach (R_STOCK_GT r_stock_gt in GTList) { rowStockGT = null; zrfc_sfc_nsg_0020.SetValue("I_AUFNR", r_stock_gt.WORKORDERNO); zrfc_sfc_nsg_0020.SetValue("I_BUDAT", postDate); zrfc_sfc_nsg_0020.SetValue("I_FLAG", r_stock_gt.CONFIRMED_FLAG); zrfc_sfc_nsg_0020.SetValue("I_LGORT_TO", r_stock_gt.TO_STORAGE); zrfc_sfc_nsg_0020.SetValue("I_LMNGA", r_stock_gt.TOTAL_QTY.ToString()); zrfc_sfc_nsg_0020.SetValue("I_STATION", r_stock_gt.SAP_STATION_CODE); try { // zrfc_sfc_nsg_0020 中包含三個動作101,521,轉倉,flag,flag1,flag2 一次對應這三個動作 // flag,flag1,flag2 這幾個flag 0表示OK,1表示false zrfc_sfc_nsg_0020.CallRFC(); o_flag = zrfc_sfc_nsg_0020.GetValue("O_FLAG"); o_flag1 = zrfc_sfc_nsg_0020.GetValue("O_FLAG1"); o_flag2 = zrfc_sfc_nsg_0020.GetValue("O_FLAG2"); o_message = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE"); o_message1 = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE1"); o_message2 = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE2"); rowStockGT = (Row_R_STOCK_GT)t_r_stock_gt.GetObjByID(r_stock_gt.ID, SFCDB); rowStockGT.SAP_MESSAGE = "101:" + o_message + ";521:" + o_message1 + ";311" + o_message2; rowStockGT.BACKFLUSH_TIME = GetDBDateTime(); if (zrfc_sfc_nsg_0020.GetValue("O_FLAG") == "0") { rowStockGT.SAP_FLAG = "1"; t_r_stock.UpdateSapFlagByGTID(rowStockGT.ID, rowStockGT.SAP_FLAG, SFCDB); } else { rowStockGT.SAP_FLAG = "2"; } SFCDB.ExecSQL(rowStockGT.GetUpdateString(DB_TYPE_ENUM.Oracle)); } catch (Exception ex) { Interface.WriteIntoMESLog(SFCDB, BU, "MESStation", "MESStation.Interface.JobStockGT", "DoJobStockGT", r_stock_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO); r_stock_gt.SAP_FLAG = "2"; } } } t_r_sync_lock.SYNC_UnLock(BU, this.IP, "JOBSTOCKGT", "JOBSTOCKGT", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); if (SFCDB != null) { DBPools["SFCDB"].Return(SFCDB); } StationReturn.Status = StationReturnStatusValue.Pass; } catch (Exception exception) { if (SFCDB != null) { DBPools["SFCDB"].Return(SFCDB); } StationReturn.Status = StationReturnStatusValue.Fail; throw exception; } }
public void ReMoveFromDB(OleExec sfcdb) { string strSql = $@"delete from C_KP_List_Item_Detail where ID = '{value.ID}'"; sfcdb.ExecSQL(strSql); }
/// <summary> /// Excel導入多語言數據 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void ExcelImport(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_LANGUAGE_PAGE language; string InsertSql = ""; string repeat = ""; string Fail = ""; string IsNull = ""; string Messaeg = ""; string LabelName = ""; string ChineseTW = ""; string Chinese = ""; string English = ""; string PageName = ""; List <C_LanguagePage> LanguagePage = JsonConvert.DeserializeObject <List <C_LanguagePage> >(Data["jsond"].ToString()); sfcdb = this.DBPools["SFCDB"].Borrow(); for (int i = 0; i < LanguagePage.Count; i++) { try { PageName = LanguagePage[i].PageName.ToString().Trim(); LabelName = LanguagePage[i].labelName.ToString().Trim(); ChineseTW = LanguagePage[i].ChineseTW.ToString().Trim(); Chinese = LanguagePage[i].Chinese.ToString().Trim(); English = LanguagePage[i].English.ToString().Trim(); } catch (Exception e) { IsNull = IsNull + LabelName + ","; } try { language = new T_C_LANGUAGE_PAGE(sfcdb, DBTYPE); if (language.CheckDataExist(PageName, LabelName, sfcdb)) { Row_C_LANGUAGE_PAGE row = (Row_C_LANGUAGE_PAGE)language.NewRow(); row.ID = language.GetNewID(BU, sfcdb); row.PAGE_NAME = PageName; row.LABEL_NAME = LabelName; row.CHINESE = Chinese; row.CHINESE_TW = ChineseTW; row.ENGLISH = English; row.EDIT_EMP = LoginUser.EMP_NO; row.SYSTEM_NAME = SystemName; row.EDIT_TIME = GetDBDateTime(); InsertSql = row.GetInsertString(DBTYPE); sfcdb.ExecSQL(InsertSql); //StationReturn.Status = StationReturnStatusValue.Pass; //StationReturn.MessageCode = "MES00000002"; // StationReturn.MessagePara.Add("46545645674"); } else { repeat = repeat + LabelName + ","; //StationReturn.Status = StationReturnStatusValue.Fail; //StationReturn.MessageCode = "MES00000005"; } } catch (Exception e) { Fail = Fail + LabelName + ","; //this.DBPools["SFCDB"].Return(sfcdb); //throw e; } } if (repeat != "") { Messaeg = Messaeg + "標籤名" + repeat + "已存在 "; } if (Fail != "") { Messaeg = Messaeg + "標籤名" + Fail + "導入失敗 "; } if (IsNull != "") { Messaeg = Messaeg + "標籤名" + Fail + "數據為空 "; } if (Messaeg == "") { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000002"; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = Messaeg; } this.DBPools["SFCDB"].Return(sfcdb); }
public void ModifyWORange(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_R_WO_REGION rWo = null; OleExec sfcdb = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); rWo = new T_R_WO_REGION(sfcdb, DB_TYPE_ENUM.Oracle); Row_R_WO_REGION r = (Row_R_WO_REGION)rWo.NewRow(); T_R_WO_BASE StWoBase = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle); T_C_SKU t_c_sku = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle); Row_R_WO_BASE RowWoBase = null; RowWoBase = StWoBase.GetWo((Data["WORKORDERNO"].ToString()).Trim(), sfcdb); string minSN = (Data["MIN_SN"].ToString()).Trim(); string maxSN = (Data["MAX_SN"].ToString()).Trim(); string checkOut = ""; if (!rWo.InputIsStringOrNum(minSN, out checkOut)) { StationReturn.MessageCode = "MES00000258"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } if (!rWo.InputIsStringOrNum(maxSN, out checkOut)) { StationReturn.MessageCode = "MES00000258"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } C_SKU objectSku = t_c_sku.GetSku(RowWoBase.SKUNO, sfcdb, DB_TYPE_ENUM.Oracle).GetDataObject(); if (!rWo.InputIsMatchSkuRule(minSN, objectSku)) { StationReturn.MessageCode = "MES00000259"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } if (!rWo.InputIsMatchSkuRule(maxSN, objectSku)) { StationReturn.MessageCode = "MES00000259"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } r = (Row_R_WO_REGION)rWo.GetObjByID(Data["ID"].ToString(), sfcdb, DB_TYPE_ENUM.Oracle); r.ID = (Data["ID"].ToString()).Trim(); r.WORKORDERNO = (Data["WORKORDERNO"].ToString()).Trim(); r.SKUNO = RowWoBase.SKUNO; r.QTY = RowWoBase.WORKORDER_QTY; //r.SKUNO = (Data["SKUNO"].ToString()).Trim(); //r.QTY = int.Parse(Data["QTY"].ToString()); r.MIN_SN = minSN; r.MAX_SN = maxSN; r.EDIT_EMP = LoginUser.EMP_NO; r.EDIT_TIME = GetDBDateTime(); string strRet = sfcdb.ExecSQL(r.GetUpdateString(DB_TYPE_ENUM.Oracle)); if (Convert.ToInt32(strRet) > 0) { StationReturn.MessageCode = "MES00000003"; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Data = ""; } else { StationReturn.MessageCode = "MES00000036"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
public void UpdateCustomer(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string strbu = BU; string id = Data["CUSTOMER_ID"].ToString().Trim(); string new_customer_name = Data["NEW_CUSTOMER_NAME"].ToString().Trim(); string description = Data["DESCRIPTION"].ToString().Trim(); OleExec oleDB = null; T_C_CUSTOMER customer = null; Row_C_CUSTOMER customerRow = null; if (string.IsNullOrEmpty(id)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("CUSTOMER ID"); StationReturn.Data = ""; return; } if (string.IsNullOrEmpty(description)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("DESCRIPTION"); StationReturn.Data = ""; return; } try { oleDB = this.DBPools["SFCDB"].Borrow(); customer = new T_C_CUSTOMER(oleDB, DBTYPE); customerRow = (Row_C_CUSTOMER)customer.NewRow(); if (!customer.CustomerIsExist(oleDB, id)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000007"; StationReturn.Data = ""; } else if (!string.IsNullOrEmpty(new_customer_name) && customer.CustomerIsExist(oleDB, strbu, new_customer_name)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000008"; StationReturn.MessagePara.Add(new_customer_name); StationReturn.Data = ""; } else { customerRow = (Row_C_CUSTOMER)customer.GetObjByID(id, oleDB, DBTYPE); if (!string.IsNullOrEmpty(new_customer_name)) { customerRow.CUSTOMER_NAME = new_customer_name; } if (!string.IsNullOrEmpty(description)) { customerRow.DESCRIPTION = description; } oleDB.ThrowSqlExeception = true; oleDB.ExecSQL(customerRow.GetUpdateString(DBTYPE)); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000003"; StationReturn.Data = ""; } this.DBPools["SFCDB"].Return(oleDB); } catch (Exception exception) { this.DBPools["SFCDB"].Return(oleDB); throw exception; } }