xwt
2025-10-30 dabfdd9dbf0364b1134daaad86af7e13f6437295
StandardInterface/MES.Service/service/QC/BaseService.cs
@@ -49,4 +49,81 @@
        });
        return mesQsImages;
    }
    /// <summary>
    /// 获取QC车间列表(根据视图 V_MES_QC_CJ)
    /// </summary>
    /// <returns>车间列表</returns>
    public List<dynamic> GetQCDepartments()
    {
        var db = SqlSugarHelper.GetInstance();
        var sql = @"
            SELECT
                T.DEPARTMENTNAME as departmentname,
                T.DEPARTMENTID as departmentid
            FROM SYS_DEPARTMENT T
            WHERE T.DEPARTMENTID IN (
                2951904,2951874,2973564,3131720,3252567,3306857,3335722,2306534,2670262,
                2365021,2365022,2749927,2306535,2558979,2558980,2558981,2558982,1606194,
                1608020,1608021,1606193,1608022,1638037,1682634,1802281,1802278,1802279,
                1802280,1999190,1999191,2272979,2513368,2513369,2513370,2513371,2558971,
                2558972,2558973,2558974,2558975,2558976,2558977,2749970,2749946,2749947,
                2749948,2670253,2670258,2670260,2513372,2513373,2513374,2513375,2513376,
                2670261,139517,139518,139519,209814,211639,221640,378794,440720,441918,
                441919,502188,507542,507545,507546,139524
            )
            ORDER BY T.DEPARTMENTNAME";
        return db.Ado.SqlQuery<dynamic>(sql);
    }
    /// <summary>
    /// 获取QC线体列表(根据车间ID筛选,基于视图 V_MES_QC_XT)
    /// </summary>
    /// <param name="departmentId">车间ID,如果为空则返回所有QC线体</param>
    /// <returns>线体列表</returns>
    public List<MesLine> GetQCLines(string? departmentId)
    {
        var db = SqlSugarHelper.GetInstance();
        if (string.IsNullOrEmpty(departmentId))
        {
            // 如果没有指定车间,返回所有QC线体
            var sql = @"
                SELECT E.LINE_NO as LineNo, E.LINE_NAME as LineName, E.DEPOT_ID as DepotId
                FROM MES_LINE E
                LEFT JOIN (
                    SELECT T.DEPARTMENTID
                    FROM SYS_DEPARTMENT T
                    WHERE T.DEPARTMENTID IN (
                        2951904,2951874,2973564,3131720,3252567,3306857,3335722,2306534,2670262,
                        2365021,2365022,2749927,2306535,2558979,2558980,2558981,2558982,1606194,
                        1608020,1608021,1606193,1608022,1638037,1682634,1802281,1802278,1802279,
                        1802280,1999190,1999191,2272979,2513368,2513369,2513370,2513371,2558971,
                        2558972,2558973,2558974,2558975,2558976,2558977,2749970,2749946,2749947,
                        2749948,2670253,2670258,2670260,2513372,2513373,2513374,2513375,2513376,
                        2670261,139517,139518,139519,209814,211639,221640,378794,440720,441918,
                        441919,502188,507542,507545,507546,139524
                    )
                ) C ON C.DEPARTMENTID = E.DEPOT_ID
                WHERE C.DEPARTMENTID IS NOT NULL
                ORDER BY E.LINE_NO DESC";
            return db.Ado.SqlQuery<MesLine>(sql);
        }
        else
        {
            // 如果指定了车间,只返回该车间下的线体
            return db.Queryable<MesLine>()
                .Where(e => e.DepotId.ToString() == departmentId)
                .OrderBy(e => e.LineNo, SqlSugar.OrderByType.Desc)
                .Select(e => new MesLine
                {
                    LineNo = e.LineNo,
                    LineName = e.LineName,
                    DepotId = e.DepotId
                })
                .ToList();
        }
    }
}