cnf
2025-09-16 934c57635b05680e9ce3fca53d109a77e8da5b9a
StandardInterface/MES.Service/service/QC/LljService.cs
@@ -1,5 +1,6 @@
using System.Data;
using System.Xml;
using System.Linq;
using Masuit.Tools;
using MES.Service.DB;
using MES.Service.Dto.service;
@@ -24,6 +25,7 @@
        var totalCount = 0;
        // 使用数据库分页查询,一次查询50条,提升性能
        var pageList = db.Queryable<LtsLlj, V_LljUser>((a, v) =>
                new JoinQueryInfos(JoinType.Left, a.ItemNo == v.ItemNo))
            .WhereIF(
@@ -86,9 +88,15 @@
                // 添加所属车间
                SSCJ = a.SSCJ,
                // 添加评审状态
                PSZT = a.PSZT
                PSZT = a.PSZT,
                // 添加检验项目维护状态
                Jyxm = a.Jyxm
            })
            .OrderBy("CASE WHEN EMERGENCY = 1 AND STATUS = '未提交' THEN 0 ELSE 1 END, CASE WHEN STATUS = '未提交' AND (SELECT COUNT(*) FROM MES_QA_ITEMS_DETECT_DETAIL5 WHERE RELEASE_NO = A.RELEASE_NO) = 0 THEN 0 ELSE 1 END, CASE WHEN STATUS = '未提交' THEN A.CREATE_DATE ASC ELSE NULL END, CASE WHEN STATUS = '已提交' THEN A.IQC_DATE DESC ELSE NULL END")
            .OrderBy("CASE WHEN EMERGENCY = 1 THEN 0 ELSE 1 END")
            .OrderBy("CASE WHEN JYXM = 0 THEN 0 ELSE 1 END")
            .OrderBy("CASE WHEN STATUS = '已提交' THEN 1 ELSE 0 END")
            .OrderBy("IQC_DATE DESC")
            .OrderBy("CREATE_DATE")
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        // 批量获取检验项目数量,避免N+1查询问题
@@ -1087,4 +1095,62 @@
            throw new Exception(ex.Message);
        }
    }
    public List<MesItems> GetWomdab(string daa001)
    {
        //if (string.IsNullOrEmpty(ItemNo))
        //{
        // throw new ArgumentException("检验单号不能为空");
        //}
        var db = SqlSugarHelper.GetInstance();
        try
        {
            return db.Queryable<Womdab>()
                    .LeftJoin<MesItems>((w, m) => w.Dab003 == m.ItemId.ToString()) // 需要替换为实际的关联字段
                    .Where((w, m) => w.Dab001 == daa001)
                    .OrderBy((w, m) => w.Dab003, OrderByType.Desc)
                    // .ThenBy((w, m) => w.CreateDate, OrderByType.Desc)
                    .Select((w, m) => new MesItems
                    {
                           ItemNo = m.ItemNo,
                           ItemName = m.ItemName,
                           ItemModel = m.ItemModel
                    }).ToList();
        }
        catch (Exception ex)
        {
           throw new Exception($"查询附件信息失败: {ex.Message}");
        }
    }
    public List<MesItems> GetWomdabById(string daa001,string ItemNo)
    {
        //if (string.IsNullOrEmpty(ItemNo))
        //{
        // throw new ArgumentException("检验单号不能为空");
        //}
        var db = SqlSugarHelper.GetInstance();
        try
        {
            return db.Queryable<Womdab>()
                    .LeftJoin<MesItems>((w, m) => w.Dab003 == m.ItemId.ToString()) // 需要替换为实际的关联字段
                    .Where((w, m) => w.Dab001 == daa001 && m.ItemNo.Contains(ItemNo))
                    .OrderBy((w, m) => w.Dab003, OrderByType.Desc)
                    // .ThenBy((w, m) => w.CreateDate, OrderByType.Desc)
                    .Select((w, m) => new MesItems
                    {
                        ItemNo = m.ItemNo,
                        ItemName = m.ItemName,
                        ItemModel = m.ItemModel
                    }).ToList();
        }
        catch (Exception ex)
        {
            throw new Exception($"查询附件信息失败: {ex.Message}");
        }
    }
}