WebApi/GS.QC/Service/MesDefectCodeManager.cs
@@ -35,33 +35,49 @@
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    /// <summary>
    /// 分页查询缺陷代码列表数据
    /// </summary>
    /// <param name="query">分页查询参数对象(包含页码、每页条数、排序、查询条件等)</param>
    /// <returns>包含分页数据的返回结果(数据列表、总条数等)</returns>
    public ReturnDto<PageList<MesDefectCode>> GetListPage(PageQuery query)
    {
        // 初始化分页结果对象(默认空列表,后续会填充数据)
        var pageList = new PageList<MesDefectCode>();
        try
        {
            // 1. 构建查询条件(WHERE子句)
            // "1=1" 是万能条件(避免后续拼接条件时需要判断是否加AND),拼接查询参数中的自定义条件(query.keyWhere)
            var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere);
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db.Queryable<MesDefectCode>("a")
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
                .ToPageList(query.currentPage, query.everyPageSize,
                    ref totalCount);
            pageList = new PageList<MesDefectCode>(itemsList, totalCount,
                query.everyPageSize);
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList,
                ReturnCode.Success, "读取成功");
            // 2. 构建排序条件(ORDER BY子句)
            // 拼接排序字段(query.sortName)和排序方向(query.sortOrder,如"ASC"升序、"DESC"降序)
            var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder);
            // 3. 声明总记录数变量(用于接收查询结果的总条数)
            var totalCount = 0;
            // 4. 执行分页查询
            // 使用数据库访问工具(Db.Queryable)查询MesDefectCode表(别名"a")
            var itemsList = Db.Queryable<MesDefectCode>("a")
                .Where(_sbWhere.ToString()) // 应用WHERE条件
                .OrderBy(_sbBy.ToString()) // 应用排序条件
                                           // 分页查询:当前页码(query.currentPage)、每页条数(query.everyPageSize),总条数通过ref参数返回
                .ToPageList(query.currentPage, query.everyPageSize, ref totalCount);
            // 5. 组装分页结果对象
            // 包含当前页数据(itemsList)、总条数(totalCount)、每页条数(query.everyPageSize)
            pageList = new PageList<MesDefectCode>(itemsList, totalCount, query.everyPageSize);
            // 6. 返回成功结果:包含分页数据、成功状态码、提示信息
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, ReturnCode.Success, "读取成功");
        }
        catch (Exception ex)
        {
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList,
                ReturnCode.Default, ex.Message);
            // 捕获异常时,返回空分页结果、默认错误码、异常信息
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, ReturnCode.Default, ex.Message);
        }
    }
    /// <summary>
    ///     读取
    /// </summary>