展杰
2024-08-19 efe6984c4e0e91b16b2704e174d610e180045dc5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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();
        });
    }
}