public static void LastScanRuleChecker(SN_KP config, LogicObject.SN sn, Row_R_SN_KP scan, List <Row_R_SN_KP> scans, MesAPIBase API, OleExec sfcdb) { T_R_SN_KP t_r_sn_kp = new T_R_SN_KP(sfcdb, DB_TYPE_ENUM.Oracle); List <R_SN_KP> kpList = t_r_sn_kp.GetKPRecordBySnID(sn.ID, sfcdb); R_SN_KP lastScan = kpList.Find(k => k.SCANSEQ == (scan.SCANSEQ - 1)); string scanValue = scan.VALUE.Substring(4, scan.VALUE.Length - 4); string lastScanVlaue = lastScan.VALUE.Substring(0, scan.VALUE.Length - 4); if (lastScan != null) { if (scanValue != lastScanVlaue) { throw new Exception("this value " + scan.VALUE + "is inconsistent with the last one"); } } }
private void Get2000E3CartonValue(R_SN r_sn, OleExec DB) { t_r_sn_kp = new T_R_SN_KP(DB, MESDataObject.DB_TYPE_ENUM.Oracle); t_c_sku_ver_mapping = new T_C_SKU_VER_MAPPING(DB, DB_TYPE_ENUM.Oracle); R_SN kpSN; R_SN_STATION_DETAIL snStationDetail = null; C_SKU_VER_MAPPING verMapping = null; R_WO_BASE r_wo_base = null; List <R_SN_KP> KPList = new List <R_SN_KP>(); List <R_SN_KP> printKPList = new List <R_SN_KP>(); R_SN_KP printKP = null; R_SN_KP GPNKP; R_SN_KP GSNKP; C_SKU_DETAIL skuDetail; if (r_sn != null) { r_wo_base = DB.ORM.Queryable <R_WO_BASE>().Where(wo => wo.WORKORDERNO == r_sn.WORKORDERNO).ToList().FirstOrDefault(); KPList = t_r_sn_kp.GetKPRecordBySnID(r_sn.ID, DB); skuDetail = DB.ORM.Queryable <C_SKU_DETAIL>().Where(d => d.SKUNO == r_wo_base.SKUNO && d.STATION_NAME == I_STATION.Value.ToString() && d.CATEGORY == "PRINT" && d.CATEGORY_NAME == "KEYPART").ToList().FirstOrDefault(); if (skuDetail != null) { //打印keypart SN 對應的keypart 信息 printKP = KPList.Find(k => k.PARTNO == skuDetail.VALUE); } if (printKP != null) { kpSN = t_r_sn.LoadSN(printKP.VALUE, DB); printKPList = t_r_sn_kp.GetKPRecordBySnID(kpSN.ID, DB); GPNKP = printKPList.Find(k => k.SCANTYPE == "GPN"); GSNKP = printKPList.Find(k => k.SCANTYPE == "GSN"); if (GPNKP != null) { O_GPN.Value = GPNKP.VALUE; } if (GSNKP != null) { O_GSN.Value = GSNKP.VALUE; } } snStationDetail = DB.ORM.Queryable <R_SN_STATION_DETAIL>().Where(s => s.R_SN_ID == r_sn.ID && s.STATION_NAME == I_STATION.Value.ToString()).ToList().FirstOrDefault(); DateTime dateTime = (DateTime)snStationDetail.EDIT_TIME; O_PRINTDATE.Value = dateTime.ToString("MM/dd/yyyy"); verMapping = t_c_sku_ver_mapping.GetMappingBySkuAndVersion(r_wo_base.SKUNO, r_wo_base.SKU_VER, DB); if (verMapping != null) { O_VER.Value = verMapping.CUSTOMER_VERSION; } else { O_VER.Value = r_wo_base.SKU_VER; } } }