DeviceManager/DeviceRepair.DataAccess/TagAccess.cs

170 lines
6.2 KiB
C#
Raw Normal View History

2024-07-01 16:52:48 +00:00
using DeviceRepair.Models;
using DeviceRepair.Models.Tag;
using SqlSugar;
using System;
namespace DeviceRepair.DataAccess
{
public class TagAccess : DbContext<TagRecordInfo>
{
private static TagAccess manager;
public static TagAccess Instance
{
get
{
if (manager == null)
manager = new TagAccess();
return manager;
}
}
/// <summary>
/// 查询数据
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public APIResponseData GetDatas(TagRecordFilter filter)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = $"获取数据失败!" };
try
{
if (filter == null)
filter = new TagRecordFilter();
db.ChangeDatabase("main");
var exp = Expressionable.Create<TagRecordInfo>()
.And(t1 => t1.CreatOn >= filter.sDate)
.And(t1 => t1.CreatOn <= filter.eDate)
.AndIF(!string.IsNullOrWhiteSpace(filter.EquipmentDisPlayID), t1 => t1.EquipmentDisPlayID == filter.EquipmentDisPlayID)
.AndIF(!string.IsNullOrWhiteSpace(filter.TagFormStatus), t1 => t1.TagFormStatus == filter.TagFormStatus).ToExpression();//拼接表达式
var Datas = db.Queryable<TagRecordInfo>().Where(exp).ToList();
apiResponseData.Code = 1;
apiResponseData.Data = Datas;
apiResponseData.Message = "";
}
catch (SqlSugarException e)
{
apiResponseData.Code = -1;
apiResponseData.Message = e.Message;
}
catch (Exception ex)
{
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 数据新增
/// </summary>
/// <param name="Model"></param>
/// <param name="Operation"></param>
/// <returns></returns>
public APIResponseData Creat(TagRecordInfo Model, HeaderModel Operation)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = $"创建数据失败!" };
try
{
if (Model == null)
throw new Exception("新增的数据不能为空!");
if (string.IsNullOrWhiteSpace(Model.EquipmentDisPlayID) || Model.EquipmentID == 0)
throw new Exception("传入的设备信息不能为空!");
db.ChangeDatabase("main");
DeviceInformationInfo dev = db.Queryable<DeviceInformationInfo>().First(x => x.EquipmentID == Model.EquipmentDisPlayID && x.EquipmentStatus == 1);
if (dev == null)
throw new Exception("传入的设备信息出错或设备未启用!");
Model.EquipmentDisPlayID = dev.EquipmentID;
Model.EquipmentName = dev.EquipmentName;
Model.EquipmentID = dev.AutoID;
Model.CreateBy = Operation.Operator;
Model.CreatOn = DateTime.Now;
Model.CreatorName = Operation.OperatorName;
Model.TagFormStatus = "N";
db.BeginTran();
TagRecordInfo Rtn = db.Insertable(Model).ExecuteReturnEntity();
if (Rtn == null)
{
db.RollbackTran();
throw new Exception("数据库写入出错!");
}
db.CommitTran();
apiResponseData.Code = 1;
apiResponseData.Data = Rtn;
apiResponseData.Message = "操作成功!";
}
catch (SqlSugarException e)
{
apiResponseData.Code = -1;
apiResponseData.Message = e.Message;
}
catch (Exception ex)
{
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 接受/维修
/// </summary>
/// <param name="Model"></param>
/// <param name="Operation"></param>
/// <returns></returns>
public APIResponseData Receipt(TagRecordInfo Model, HeaderModel Operation)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = $"维修数据失败!" };
try
{
if (Model == null)
throw new Exception("维修的数据不能为空!");
db.ChangeDatabase("main");
TagRecordInfo tagRecordInfo = db.Queryable<TagRecordInfo>().First(x => x.AutoID == Model.AutoID);
if (tagRecordInfo == null)
throw new Exception($"找不到Tag编号为【{Model.AutoID}】的Tag表单!");
tagRecordInfo.ReceiptBy = Operation.Operator;
tagRecordInfo.ReceiptName = Operation.OperatorName;
tagRecordInfo.ReceiptOn = DateTime.Now;
tagRecordInfo.ReceiptDetailsOfIssue = Model.ReceiptDetailsOfIssue;
tagRecordInfo.TagFormStatus = "C";
db.BeginTran();
int Rtn = db.Updateable(tagRecordInfo).ExecuteCommand();
if (Rtn > 0)
{
db.CommitTran();
apiResponseData.Code = 1;
apiResponseData.Message = "操作成功";
apiResponseData.Data = tagRecordInfo;
}
else
{
db.RollbackTran();
}
}
catch (SqlSugarException e)
{
apiResponseData.Code = -1;
apiResponseData.Message = e.Message;
}
catch (Exception ex)
{
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
}
}