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 GetDjDetail(DJPageResultDto queryObj) { // 处理传入的 releaseNo 为 null 的情况 if (string.IsNullOrEmpty(queryObj.eqNo)) return new DjDetailResult { MesEqKeepsType02List = new List(), EqInfoList = new List() }; using (var db = SqlSugarHelper.GetInstance()) { try { // 获取当天开始和结束时间 var todayStart = DateTime.Today; var todayEnd = todayStart.AddDays(1); var results = await db.Queryable() .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(), EqInfoList = new List() }; // 根据获取的 id 列表查询 MesEqKeepsType02 表 var keepsType02List = await db.Queryable() .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(), EqInfoList = new List() }; } catch (Exception ex) { // 处理其他异常 Console.WriteLine($"发生未知错误: {ex.Message}"); return new DjDetailResult { MesEqKeepsType02List = new List(), EqInfoList = new List() }; } } } public async Task> UpdateDjDetail( DJPageResultDto updateObj) { // 处理传入的 releaseNo 为 null 或空字符串的情况 if (string.IsNullOrEmpty(updateObj.releaseNo)) return new List(); using (var db = SqlSugarHelper.GetInstance()) { try { // 开启事务 db.Ado.BeginTran(); // 更新 MesEqMaintain 表的数据 await db.Updateable() .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() .SetColumns(x => new MesEqKeepsType02 { EqEnd = item.result }) .Where(x => x.Id == item.id.Value) .ExecuteCommandAsync(); // 提交事务 db.Ado.CommitTran(); // 根据更新条件查询更新后的数据 return await db.Queryable() .Where(x => x.PlanNo == updateObj.releaseNo) .ToListAsync(); } catch (SqlSugarException ex) { // 回滚事务 db.Ado.RollbackTran(); // 处理数据库操作异常 // 这里可以根据实际需求添加日志记录等操作 Console.WriteLine($"数据库操作出错: {ex.Message}"); return new List(); } catch (Exception ex) { // 回滚事务 db.Ado.RollbackTran(); // 处理其他异常 Console.WriteLine($"发生未知错误: {ex.Message}"); return new List(); } } } }