xwt
2025-05-11 01ca89300e9ebf6e17be8815d779b29630293e74
更新检验项目获取
已修改1个文件
113 ■■■■ 文件已修改
StandardInterface/MES.Service/service/QC/LljService.cs 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/QC/LljService.cs
@@ -52,96 +52,49 @@
    }
    //根据检验标准来计算检验个数
    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)