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>();
|
}
|
}
|
}
|
}
|