using MES.Service.DB; using MES.Service.Modes; using SqlSugar; namespace MES.Service.service.QC; public class SuspendService { private readonly string[] statusArray = ["开工", "待开工"]; public List getDept() { var db = SqlSugarHelper.GetInstance(); //return db.Queryable().ToList(); return db .Queryable( (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 GetLines(string deptCode) { var db = SqlSugarHelper.GetInstance(); var mesLines = db.Queryable( (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() .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 getAllByDeptNo(string deptNo) { var db = SqlSugarHelper.GetInstance(); return db.Queryable() .Where(a => a.DeptNo == deptNo && a.IsSuspend == 0).ToList(); } public List getOpenDept() { var db = SqlSugarHelper.GetInstance(); return db.Queryable().GroupBy(a => new { a.DeptNo, a.DeptName }).Select(a => new MesQsSuspend { DeptNo = a.DeptNo, DeptName = a.DeptName }).ToList(); } public List getOpenLine(string deptNo) { var db = SqlSugarHelper.GetInstance(); return db.Queryable() .Where(a => a.DeptNo == deptNo && a.IsSuspend == 0) .GroupBy(a => new { a.LineNo, a.LineName }).Select(a => new MesQsSuspend { LineNo = a.LineNo, LineName = a.LineName }).ToList(); } public int UpdateById(MesQsSuspend entity) { return SqlSugarHelper.UseTransactionWithOracle(db => { return db.Updateable() .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(); }); } }