111
啊鑫
2025-07-30 7517c0cbcddb428b95498af990a4831769a9d7e7
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using SqlSugar;
 
namespace MES.Service.service.SpotCheck;
 
public class SpotCheckService
{
    public async Task<DjDetailResult> GetDjDetail(DJPageResultDto queryObj)
    {
        // 处理传入的 releaseNo 为 null 的情况
        if (string.IsNullOrEmpty(queryObj.eqNo))
            return new DjDetailResult
            {
                MesEqKeepsType02List = new List<MesEqKeepsType02>(),
                EqInfoList = new List<MesEqMaintain>()
            };
 
        using (var db = SqlSugarHelper.GetInstance())
        {
            try
            {
                // 获取当天开始和结束时间
                var todayStart = DateTime.Today;
                var todayEnd = todayStart.AddDays(1);
 
                var results = await db.Queryable<MesEqMaintain>()
                    .Where(x => x.EqNo == queryObj.eqNo &&
                                x.CreateDate >= todayStart &&
                                x.CreateDate < todayEnd &&
                                x.Flag == 0)
                    .Select(x => new
                    {
                        x.Id,
                        x.EqName,
                        x.PlanNo,
                        x.EqNo
                    })
                    .ToListAsync();
                if (results == null || results.Count == 0)
                    throw new Exception("单据不存在");
 
                var ids = results.Select(r => (decimal)r.Id).ToList();
 
                var eqInfoList = results.Select(r => new MesEqMaintain
                {
                    EqName = r.EqName,
                    PlanNo = r.PlanNo,
                    EqNo = r.EqNo
                }).ToList();
 
                if (ids.Count == 0)
                    return new DjDetailResult
                    {
                        MesEqKeepsType02List = new List<MesEqKeepsType02>(),
                        EqInfoList = new List<MesEqMaintain>()
                    };
 
                // 根据获取的 id 列表查询 MesEqKeepsType02 表
                var keepsType02List = await db.Queryable<MesEqKeepsType02>()
                    .Where(x => x.Pid.HasValue && ids.Contains(x.Pid.Value))
                    .ToListAsync();
 
                return new DjDetailResult
                {
                    MesEqKeepsType02List = keepsType02List,
                    EqInfoList = eqInfoList
                };
            }
            catch (SqlSugarException ex)
            {
                // 处理数据库操作异常
                // 这里可以根据实际需求添加日志记录等操作
                Console.WriteLine($"数据库查询出错: {ex.Message}");
                return new DjDetailResult
                {
                    MesEqKeepsType02List = new List<MesEqKeepsType02>(),
                    EqInfoList = new List<MesEqMaintain>()
                };
            }
            catch (Exception ex)
            {
                // 处理其他异常
                Console.WriteLine($"发生未知错误: {ex.Message}");
                return new DjDetailResult
                {
                    MesEqKeepsType02List = new List<MesEqKeepsType02>(),
                    EqInfoList = new List<MesEqMaintain>()
                };
            }
        }
    }
 
    public async Task<List<MesEqMaintain>> UpdateDjDetail(
        DJPageResultDto updateObj)
    {
        // 处理传入的 releaseNo 为 null 或空字符串的情况
        if (string.IsNullOrEmpty(updateObj.releaseNo))
            return new List<MesEqMaintain>();
 
        using (var db = SqlSugarHelper.GetInstance())
        {
            try
            {
                // 开启事务
                db.Ado.BeginTran();
 
                // 更新 MesEqMaintain 表的数据
                await db.Updateable<MesEqMaintain>()
                    .SetColumns(x => new MesEqMaintain
                    {
                        CheckBy = updateObj.userNo,
                        Flag = 1,
                        CheckDate = DateTime.Now
                    })
                    .Where(x => x.PlanNo == updateObj.releaseNo && x.Flag == 0)
                    .ExecuteCommandAsync();
 
                // 根据 inspectionItems 列表的 id 更新 MesEqKeepsType02 表
                if (updateObj.inspectionItems != null)
                    foreach (var item in updateObj.inspectionItems)
                        if (item.id.HasValue)
                            await db.Updateable<MesEqKeepsType02>()
                                .SetColumns(x => new MesEqKeepsType02
                                {
                                    EqEnd = item.result
                                })
                                .Where(x => x.Id == item.id.Value)
                                .ExecuteCommandAsync();
 
                // 提交事务
                db.Ado.CommitTran();
 
                // 根据更新条件查询更新后的数据
                return await db.Queryable<MesEqMaintain>()
                    .Where(x => x.PlanNo == updateObj.releaseNo)
                    .ToListAsync();
            }
            catch (SqlSugarException ex)
            {
                // 回滚事务
                db.Ado.RollbackTran();
 
                // 处理数据库操作异常
                // 这里可以根据实际需求添加日志记录等操作
                Console.WriteLine($"数据库操作出错: {ex.Message}");
                return new List<MesEqMaintain>();
            }
            catch (Exception ex)
            {
                // 回滚事务
                db.Ado.RollbackTran();
 
                // 处理其他异常
                Console.WriteLine($"发生未知错误: {ex.Message}");
                return new List<MesEqMaintain>();
            }
        }
    }
}