zjh
2025-03-13 0cff826ea489a1faa5cbb320cad52d102530a9e0
StandardPda/MES.Service/service/QC/SuspendService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.QC;
public class SuspendService
{
    private readonly string[] statusArray = ["开工", "待开工"];
    public List<SysDepartment> getDept()
    {
        var db = SqlSugarHelper.GetInstance();
        //return db.Queryable<SysDepartment>().ToList();
        return db
            .Queryable<Womdaa, MesLine, QsQaItemXj, SysDepartment>(
                (a, b, c, d) =>
                    new JoinQueryInfos(JoinType.Left,
                        a.Daa002 == b.Id.ToString(),
                        JoinType.Inner, a.Daa001 == c.BillNo,
                        JoinType.Left, b.Departmentcode == d.Departmentcode))
            .Where((a, b, c, d) => b.LineName != null &&
                                   statusArray.Contains(a.Daa018))
            .GroupBy((a, b, c, d) => new
            {
                b.Departmentcode, d.Departmentname
            })
            .Select((a, b, c, d) => new SysDepartment
            {
                Departmentcode = b.Departmentcode,
                Departmentname = d.Departmentname
            }).ToList();
    }
    public List<MesLine> GetLines(string deptCode)
    {
        var db = SqlSugarHelper.GetInstance();
        var mesLines = db.Queryable<Womdaa, MesLine, QsQaItemXj>(
                (a, b, c) =>
                    new JoinQueryInfos(JoinType.Left,
                        a.Daa002 == b.Id.ToString(),
                        JoinType.Inner, a.Daa001 == c.BillNo))
            .Where((a, b, c) => b.LineName != null &&
                                statusArray.Contains(a.Daa018)
                                && b.Departmentcode == deptCode)
            .GroupBy((a, b, c) => new
            {
                b.LineNo, b.LineName
            })
            .Select((a, b, c) => new MesLine
            {
                LineNo = b.LineNo,
                LineName = b.LineName
            }).ToList();
        var mesQsSuspends = db.Queryable<MesQsSuspend>()
            .Where(s => s.IsSuspend == 0).ToList();
        return mesLines.Where(p => mesQsSuspends.All(e => e.LineNo != p.LineNo))
            .ToList();
    }
    public int save(MesQsSuspend entity)
    {
        entity.CreateDate = DateTime.Now;
        return SqlSugarHelper.UseTransactionWithOracle(db =>
            db.Insertable(entity).ExecuteCommand());
    }
    public List<MesQsSuspend> getAllByDeptNo(string deptNo)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesQsSuspend>()
            .Where(a => a.DeptNo == deptNo && a.IsSuspend == 0).ToList();
    }
    public List<MesQsSuspend> getOpenDept()
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesQsSuspend>().GroupBy(a => new
        {
            a.DeptNo,
            a.DeptName
        }).Select<MesQsSuspend>(a => new MesQsSuspend
        {
            DeptNo = a.DeptNo,
            DeptName = a.DeptName
        }).ToList();
    }
    public List<MesQsSuspend> getOpenLine(string deptNo)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesQsSuspend>()
            .Where(a => a.DeptNo == deptNo && a.IsSuspend == 0)
            .GroupBy(a => new
            {
                a.LineNo,
                a.LineName
            }).Select<MesQsSuspend>(a => new MesQsSuspend
            {
                LineNo = a.LineNo,
                LineName = a.LineName
            }).ToList();
    }
    public int UpdateById(MesQsSuspend entity)
    {
        return SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            return db.Updateable<MesQsSuspend>()
                .SetColumns(a => a.IsSuspend == entity.IsSuspend)
                .SetColumns(a => a.OpenDate == DateTime.Now)
                .SetColumns(a => a.TimeDifference == entity.TimeDifference)
                .Where(a => a.Id == entity.Id)
                .ExecuteCommand();
        });
    }
}