| | |
| | | } |
| | | |
| | | //根据检验标准来计算检验个数 |
| | | public List<MesQaItemsDetectDetail5> SetItems(string itemNo, |
| | | /// <summary> |
| | | /// 调用存储过程,重新获取检验项目 |
| | | /// </summary> |
| | | /// <param name="itemNo"></param> |
| | | /// <param name="quantity"></param> |
| | | /// <param name="releaseNo"></param> |
| | | /// <returns></returns> |
| | | public string[] SetItems(string itemNo, |
| | | decimal quantity, string releaseNo) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | // 定义输出参数 |
| | | var outputResult = new SugarParameter("o_Result", null, |
| | | DbType.Int32, ParameterDirection.Output, |
| | | 4000); |
| | | |
| | | var outputMessage = new SugarParameter("o_Msg", null, |
| | | DbType.String, |
| | | ParameterDirection.Output, 4000); |
| | | |
| | | var count = db.Queryable<MesQaIqc>().Where(s => s.EE == 1 && |
| | | s.ISENABLED == 1 |
| | | && s.ItemNo == itemNo && s.FTYPE == "1").Count(); |
| | | |
| | | if (count <= 0) return []; |
| | | |
| | | var mesQaIqcItem = db |
| | | .Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1 |
| | | && s.ItemNo == itemNo && s.FTYPE == "1").Select( |
| | | b => new MesQaItemsDetectDetail5 |
| | | // 定义输入参数 |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | ReleaseNo = releaseNo, |
| | | FacLevel = b.FacLevel, |
| | | FcheckItem = b.FcheckItem, |
| | | FdownAllow = b.FdownAllow, |
| | | FcheckLevel = b.FREQUENCY, |
| | | Fstand = b.FSTAND, |
| | | FupAllow = b.FupAllow, |
| | | SampleSizeNo = b.SampleSizeNo, |
| | | FenterQty = 0, |
| | | Factory = "1000", |
| | | Company = "1000", |
| | | |
| | | |
| | | // FcheckItemDesc = "0", |
| | | // FcheckResu = "0", |
| | | FcheckTool = b.FcheckTool, |
| | | FspecRequ = b.FspecRequ |
| | | // FtextType = "0", |
| | | // Funit = "0", |
| | | // LastupdateBy = "0", |
| | | // ProcNo = "0", |
| | | // WorkshopCenterCode = "0" |
| | | }).ToList(); |
| | | |
| | | mesQaIqcItem.ForEach(item => |
| | | { |
| | | var LEV = item.FcheckLevel switch |
| | | { |
| | | null => "" // 默认值 |
| | | , |
| | | { } s when s.Contains("S1") => "B.FLEVEL_S1", |
| | | { } s when s.Contains("S2") => "B.FLEVEL_S2", |
| | | { } s when s.Contains("S3") => "B.FLEVEL_S3", |
| | | { } s when s.Contains("S4") => "B.FLEVEL_S4", |
| | | { } s when s.Contains("(I)") => "B.FLEVEL_I", |
| | | { } s when s.Contains("(II)") => "B.FLEVEL_II", |
| | | { } s when s.Contains("(III)") => "B.FLEVEL_III", |
| | | _ => "" |
| | | new("P_RELEASE_NO", releaseNo, |
| | | DbType.String, ParameterDirection.Input), |
| | | outputResult, |
| | | outputMessage |
| | | }; |
| | | |
| | | if (string.IsNullOrEmpty(LEV)) |
| | | throw new Exception(item.SampleSizeNo + "的检验水平不正确"); |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var sql = |
| | | "SELECT " + LEV + |
| | | " FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO='" + |
| | | item.SampleSizeNo + "' AND B.LOT_FROM<= " + quantity + |
| | | " AND " + |
| | | quantity + "<=B.LOT_TO"; |
| | | // 使用 SqlSugar 执行存储过程 |
| | | db.Ado.ExecuteCommand( |
| | | "BEGIN PRC_QA_ITEM_INSERT_BTN(:P_RELEASE_NO, :o_Result, :o_Msg); END;", |
| | | parameters.ToArray()); |
| | | |
| | | var maxBillNo = db.Ado.SqlQuerySingle<string>(sql); |
| | | // 获取输出参数的值 |
| | | var resultValue = outputResult.Value?.ToString(); |
| | | var messageValue = outputMessage.Value?.ToString(); |
| | | string[] msg = new string[2]; |
| | | msg[0] = resultValue; |
| | | msg[1] = messageValue; |
| | | return msg; |
| | | |
| | | if (string.IsNullOrEmpty(maxBillNo)) |
| | | throw new Exception(item.SampleSizeNo + "下的" + quantity + |
| | | "这个范围下没有匹配到检验项目"); |
| | | |
| | | var result = ExtractSubstring(item.FacLevel, '(', ')'); |
| | | |
| | | if (string.IsNullOrEmpty(result)) |
| | | throw new Exception(item.SampleSizeNo + "下的" + quantity + |
| | | "拒收水平不正确"); |
| | | |
| | | sql = "SELECT FSAMPLE_SIZE_WORD, " + result + |
| | | " Result FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO= '" + |
| | | item.SampleSizeNo + "' AND SAMPLE_SIZE_WORD= '" + maxBillNo + |
| | | "'"; |
| | | var resultClass = db.Ado.SqlQuerySingle<ResultClass>(sql); |
| | | |
| | | item.CheckQyt = resultClass.FSAMPLE_SIZE_WORD; |
| | | item.FreQty = resultClass.Result; |
| | | }); |
| | | |
| | | return mesQaIqcItem; |
| | | } |
| | | |
| | | private string ExtractSubstring(string input, char startChar, char endChar) |