private static List <TestResultBasic> SelectTestResultBasic() { DataTable typeNoDt = SelectTypeNoList().Tables[0]; List <TestResultBasic> testResultsList = new List <TestResultBasic>(); if (typeNoDt.Rows.Count > 0) { for (int i = 0; i < typeNoDt.Rows.Count; i++) { var typeNo = typeNoDt.Rows[i][0].ToString(); DataTable stationList = SelectStationList(typeNo).Tables[0]; if (stationList.Rows.Count > 0) { for (int j = 0; j < stationList.Rows.Count; j++) { var stationName = stationList.Rows[j][1].ToString(); var selectResultSQL = $"SELECT TOP 1 " + $"{DbTable.F_Test_Result.SN}," + $"{DbTable.F_Test_Result.TYPE_NO}," + $"{DbTable.F_Test_Result.STATION_NAME}," + $"{DbTable.F_Test_Result.STATION_IN_DATE}," + $"{DbTable.F_Test_Result.STATION_OUT_DATE}," + $"{DbTable.F_Test_Result.TEST_RESULT}," + $"{DbTable.F_Test_Result.TEAM_LEADER}," + $"{DbTable.F_Test_Result.ADMIN} " + $"FROM " + $"{DbTable.F_TEST_RESULT_NAME} " + $"WHERE " + $"{DbTable.F_Test_Result.STATION_NAME} = '{stationName}' " + $"AND " + $"{DbTable.F_Test_Result.TYPE_NO} = '{typeNo}' " + $"ORDER BY " + $"{DbTable.F_Test_Result.STATION_IN_DATE} DESC"; var dtResult = SQLServer.ExecuteDataSet(selectResultSQL).Tables[0]; TestResultBasic testResultBasic = new TestResultBasic(); if (dtResult.Rows.Count > 0) { testResultBasic.ProductSN = dtResult.Rows[0][0].ToString(); testResultBasic.ProductTypeNo = dtResult.Rows[0][1].ToString(); testResultBasic.StationName = dtResult.Rows[0][2].ToString(); testResultBasic.StationInDate = dtResult.Rows[0][3].ToString(); testResultBasic.StationOutDate = dtResult.Rows[0][4].ToString(); testResultBasic.TestResultValue = dtResult.Rows[0][5].ToString(); testResultBasic.UserTeamLeader = dtResult.Rows[0][6].ToString(); testResultBasic.UserAdmin = dtResult.Rows[0][7].ToString(); testResultsList.Add(testResultBasic); } } } } } return(testResultsList); }
public static string GetProductTestFinalResult(string pcbsn, string productsn, int shellLen, string productTypeNo) { bool IsFinalResultPass = true; //var productTypeNo = GetProductTypeNoOfSN(pcbsn, productsn); if (productTypeNo == "") { return("未完成"); } DataTable stationList = SelectStationList(productTypeNo).Tables[0]; //判断当前工艺流程是否没有外壳装配工站---即不能完成绑定关系 /* * 1)将有PCBA的几个工站进行计算 * 2)将有外壳SN的几个工站进行计算 */ var stationRow = stationList.Select($"{DbTable.F_Test_Result.STATION_NAME} = '外壳装配工站'"); if (stationRow.Length < 1) { //不包含外壳装配工站,重新生成计算工站 var cirticalID = CalCirticalStationID(); if (pcbsn.Length == shellLen && productsn == "") { //只计算外壳装配之后的工站--临界点 LogHelper.Log.Info("【只计算外壳装配之后的工站】" + pcbsn); stationList = SelectCirticalStationList(productTypeNo, cirticalID, false).Tables[0]; } else if (pcbsn.Length < shellLen && productsn == "") { //只计算外壳装配之前的工站 LogHelper.Log.Info("【只计算外壳装配之前的工站】" + pcbsn); stationList = SelectCirticalStationList(productTypeNo, cirticalID, true).Tables[0]; } } if (stationList.Rows.Count > 0) { for (int j = 0; j < stationList.Rows.Count; j++) { var stationName = stationList.Rows[j][1].ToString(); var selectResultSQL = $"SELECT TOP 1 " + $"{DbTable.F_Test_Result.SN}," + $"{DbTable.F_Test_Result.TYPE_NO}," + $"{DbTable.F_Test_Result.STATION_NAME}," + $"{DbTable.F_Test_Result.STATION_IN_DATE}," + $"{DbTable.F_Test_Result.STATION_OUT_DATE}," + $"{DbTable.F_Test_Result.TEST_RESULT}," + $"{DbTable.F_Test_Result.TEAM_LEADER}," + $"{DbTable.F_Test_Result.ADMIN} " + $"FROM " + $"{DbTable.F_TEST_RESULT_NAME} " + $"WHERE " + $"{DbTable.F_Test_Result.STATION_NAME} = '{stationName}' " + $"AND " + $"{DbTable.F_Test_Result.SN} = '{pcbsn}' " + $"ORDER BY " + $"{DbTable.F_Test_Result.STATION_IN_DATE} DESC"; var dtResult = SQLServer.ExecuteDataSet(selectResultSQL).Tables[0]; TestResultBasic testResultBasic = new TestResultBasic(); if (dtResult.Rows.Count > 0) { //pcbasn查询结果 testResultBasic.TestResultValue = dtResult.Rows[0][5].ToString(); var currentTestResult = testResultBasic.TestResultValue.Trim().ToLower(); if (currentTestResult != "pass") { IsFinalResultPass = false; } } else { //productsn查询结果 selectResultSQL = $"SELECT TOP 1 " + $"{DbTable.F_Test_Result.SN}," + $"{DbTable.F_Test_Result.TYPE_NO}," + $"{DbTable.F_Test_Result.STATION_NAME}," + $"{DbTable.F_Test_Result.STATION_IN_DATE}," + $"{DbTable.F_Test_Result.STATION_OUT_DATE}," + $"{DbTable.F_Test_Result.TEST_RESULT}," + $"{DbTable.F_Test_Result.TEAM_LEADER}," + $"{DbTable.F_Test_Result.ADMIN} " + $"FROM " + $"{DbTable.F_TEST_RESULT_NAME} " + $"WHERE " + $"{DbTable.F_Test_Result.STATION_NAME} = '{stationName}' " + $"AND " + $"{DbTable.F_Test_Result.SN} = '{productsn}' " + $"ORDER BY " + $"{DbTable.F_Test_Result.STATION_IN_DATE} DESC"; dtResult = SQLServer.ExecuteDataSet(selectResultSQL).Tables[0]; if (dtResult.Rows.Count > 0) { testResultBasic.TestResultValue = dtResult.Rows[0][5].ToString(); var currentTestResult = testResultBasic.TestResultValue.Trim().ToLower(); if (currentTestResult != "pass") { IsFinalResultPass = false; } } else { //pcbasn/productsn都无查询结果;无进站记录 //流程为未完成状态 return("未完成"); } } } } if (IsFinalResultPass) { return("PASS"); } else { return("FAIL"); } }