fcx
2025-12-10 35f29f98993a2cede58e105ff810c83d7b8858f4
StandardPda/MES.Service/service/QC/SJService.cs
@@ -74,16 +74,110 @@
    //    return (data, totalCount);
    //}
    public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult queryObj)
    //public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult queryObj)
    //{
    //    var db = SqlSugarHelper.GetInstance();
    //    string[]? lineNo = null;
    //    // if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
    //    //     lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
    //    var totalCount = 0;
    //    string searchValue = queryObj.searchValue?.Trim();
    //    // ========= 构建基础 query =========
    //    var query = db.Queryable<SJPageResult>()
    //        .WhereIF(lineNo != null && lineNo.Length > 0,
    //            a => lineNo.Contains(a.line))
    //        .WhereIF(queryObj.Id != null,
    //            a => a.Id == queryObj.Id)
    //        .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo),
    //            a => a.BillNo == queryObj.BillNo)
    //        // 未完成
    //        .WhereIF(
    //            StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
    //            "未完成".Equals(queryObj.Result),
    //            a => a.FSubmit == 0 || a.FSubmit == null)
    //        // 已完成
    //        .WhereIF(
    //            StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
    //            !"未完成".Equals(queryObj.Result),
    //            a => a.FSubmit == 1);
    //    // ========= SearchValue 判断 =========
    //    // SearchValue 为空:返回全部
    //    if (string.IsNullOrWhiteSpace(searchValue))
    //    {
    //        var allData = query
    //            .OrderBy(a => a.BillNo, OrderByType.Desc)
    //            .ToPageList(
    //                Math.Max(queryObj.PageIndex, 1),
    //                Math.Max(queryObj.Limit, 1),
    //                ref totalCount
    //            );
    //        return (allData, totalCount);
    //    }
    //    // SearchValue 不为空:模糊查 BILL_NO / ITEM_NO
    //    query = query.Where(a =>
    //        SqlFunc.Like(SqlFunc.Trim(a.BillNo).ToLower(), $"%{searchValue.ToLower()}%") ||
    //        SqlFunc.Like(SqlFunc.Trim(a.ItemNo).ToLower(), $"%{searchValue.ToLower()}%")
    //    );
    //    // ========= 执行分页 =========
    //    var data = query
    //        .OrderBy(a => a.BillNo, OrderByType.Desc)
    //        .ToPageList(
    //            Math.Max(queryObj.PageIndex, 1),
    //            Math.Max(queryObj.Limit, 1),
    //            ref totalCount
    //        );
    //    return (data, totalCount);
    //}
    public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult2 queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
        int totalCount = 0;
        string[]? lineNo = null;
        // if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
        //     lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
        var totalCount = 0;
        string searchValue = queryObj.searchValue?.Trim();
        var query = db.Queryable<SJPageResult>();
        // 获取搜索选项索引 (0:项目, 1:线体, 2:工单号, 3:物料号, 4:物料名)
        int selectedIndex = queryObj.selectedIndex ?? 0;
        // 1️⃣ 如果 SearchValue 为空 → 查询全部
        // ========= 构建基础 query =========
        var query = db.Queryable<SJPageResult>()
            .WhereIF(lineNo != null && lineNo.Length > 0,
                a => lineNo.Contains(a.line))
            .WhereIF(queryObj.Id != null,
                a => a.Id == queryObj.Id)
            .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo),
                a => a.BillNo == queryObj.BillNo)
            // 未完成
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
                "未完成".Equals(queryObj.Result),
                a => a.FSubmit == 0 || a.FSubmit == null)
            // 已完成
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
                !"未完成".Equals(queryObj.Result),
                a => a.FSubmit == 1);
        // ========= SearchValue 判断 =========
        // SearchValue 为空:返回全部
        if (string.IsNullOrWhiteSpace(searchValue))
        {
            var allData = query
@@ -91,32 +185,45 @@
                .ToPageList(
                    Math.Max(queryObj.PageIndex, 1),
                    Math.Max(queryObj.Limit, 1),
                    ref totalCount);
                    ref totalCount
                );
            return (allData, totalCount);
        }
        // 2️⃣ SearchValue 非空 → 模糊匹配 BILL_NO 或 ITEM_NO
        query = query.Where(a =>
            SqlFunc.Like(SqlFunc.Trim(a.BillNo).ToLower(), $"%{searchValue.ToLower()}%") ||
            SqlFunc.Like(SqlFunc.Trim(a.ItemNo).ToLower(), $"%{searchValue.ToLower()}%")
        );
        // SearchValue 不为空:根据selectedIndex进行不同字段的模糊查询
        switch (queryObj.selectedIndex)
        {
            case 2: // 工单号
                query = query.Where(a => SqlFunc.Like(a.daa001.ToLower(), $"%{searchValue.ToLower()}%"));
                break;
            case 3: // 物料号
                query = query.Where(a => SqlFunc.Like(a.ItemNo.ToLower(), $"%{searchValue.ToLower()}%"));
                break;
            case 4: // 物料名称
                query = query.Where(a => SqlFunc.Like(a.Daa003.ToLower(), $"%{searchValue.ToLower()}%"));
                break;
            case 0: // 项目编码
                query = query.Where(a => SqlFunc.Like(a.PROJECT_CODE.ToLower(), $"%{searchValue.ToLower()}%"));
                break;
            case 1: // 线体
                query = query.Where(a => SqlFunc.Like(a.line.ToLower(), $"%{searchValue.ToLower()}%"));
                break;
            default:
                return (new List<SJPageResult>(), 0);
        }
        // ========= 执行分页 =========
        var data = query
            .OrderBy(a => a.BillNo, OrderByType.Desc)
            .ToPageList(
                Math.Max(queryObj.PageIndex, 1),
                Math.Max(queryObj.Limit, 1),
                ref totalCount);
        // 3️⃣ 如果没有匹配数据 → 返回空列表
        if (totalCount == 0)
            return (new List<SJPageResult>(), 0);
                ref totalCount
            );
        return (data, totalCount);
    }
@@ -281,7 +388,7 @@
        });
        item.Items = getQSItems(qsItemIpiReq.Id, null);
        var sjPageResult = new SJPageResult
        var sjPageResult = new SJPageResult2
            { Id = item.From.Id, Limit = 1, PageIndex = 1 };
        var pageResult = getPage(sjPageResult);
        item.Result = pageResult.item[0];
@@ -626,7 +733,6 @@
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
                return db.Updateable<QsItemIpiReq>()
                    .SetColumns(s => s.Fsubmit == 1)
                    .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
                    .SetColumns(s => s.FsubmitDate == DateTime.Now)
                    .Where(s => s.Id == rkjDto.gid)