using PadApplication.DB;
|
using PadApplication.Entites.DbModels;
|
using PadApplication.Entites.Dto;
|
|
namespace PadApplication.Services;
|
|
/// <summary>
|
/// 工单选择管理类,负责工单选择相关的数据操作
|
/// 继承自Repository<MesOrderSelect>基类,包含基础的CRUD操作
|
/// </summary>
|
public class MesOrderSelectManager : Repository<MesOrderSelect>
|
{
|
private readonly WomdaaManager _womdaaManager = new();
|
|
|
public bool AddMesOrderSelect(OrderSelectDto dto)
|
{
|
var query = new OrderMachineDto
|
{
|
machineNo = dto.MachineNo
|
};
|
var womdaasByShow = _womdaaManager.GetWomdaasByShow(query);
|
var date = DateTime.Now.ToString("yyyy-MM-dd");
|
foreach (var vOrder in womdaasByShow)
|
{
|
var count = Db.Queryable<MesOrderSelect>()
|
.Where(s => s.OrderId == vOrder.ID
|
&& s.EditDate == date).Count();
|
|
if (count > 0) continue;
|
|
// 设置基础信息
|
var mesOrderSelect = new MesOrderSelect
|
{
|
OrderId = vOrder.ID,
|
OrderNo = vOrder.Daa001,
|
EditDate = date,
|
MachineNo = dto.MachineNo,
|
IsShow = 0,
|
TjCount = 0,
|
TjTime = 0
|
};
|
|
// 插入记录,如果失败则返回false
|
if (!Insert(mesOrderSelect)) return false;
|
}
|
|
return true;
|
}
|
|
/// <summary>
|
/// 添加工单选择记录
|
/// </summary>
|
/// <param name="dto">工单选择数据传输对象,包含工单列表和基础信息</param>
|
/// <returns>添加是否成功</returns>
|
public bool Add(OrderSelectDto dto)
|
{
|
// 先删除该机器的现有选择记录
|
Remove(dto);
|
|
// 获取第一个工单的工单号
|
var orderNo = dto.Item[0].OrderNo;
|
var query = new OrderMachineDto();
|
query.orderNo = orderNo;
|
|
// 检查是否为新工单
|
var isN = isNew(query);
|
|
// 遍历工单列表,添加每个工单的选择记录
|
foreach (var mesOrderSelect in dto.Item)
|
{
|
var count = Db.Queryable<MesOrderSelect>()
|
.Where(s => s.OrderId == mesOrderSelect.OrderId
|
&& s.EditDate == dto.EditDate).Count();
|
|
if (count > 0)
|
{
|
Db.Updateable<MesOrderSelect>()
|
.SetColumns(s => s.IsShow == 0)
|
.Where(s => s.OrderId == mesOrderSelect.OrderId
|
&& s.EditDate == dto.EditDate)
|
.ExecuteCommand();
|
}
|
else
|
{
|
// 设置基础信息
|
mesOrderSelect.EditDate = dto.EditDate;
|
mesOrderSelect.MachineNo = dto.MachineNo;
|
mesOrderSelect.IsShow = 0;
|
mesOrderSelect.TjCount = 0;
|
mesOrderSelect.TjTime = 0;
|
|
// 插入记录,如果失败则返回false
|
if (!Insert(mesOrderSelect)) return false;
|
}
|
|
var womdaa = Db.Queryable<Womdaa>()
|
.Where(s => s.Daa001 == mesOrderSelect.OrderNo).First();
|
|
if (womdaa == null) continue;
|
|
var equals = womdaa.Daa018.Equals("暂停");
|
|
//// 更新工单状态表中的换模开始时间
|
//Db.Updateable<MesOrderSta>()
|
// .SetColumnsIF(equals, s => s.MaShoutTime == null)
|
// .SetColumnsIF(equals, s => s.MaEndTime == null)
|
// .Where(s => s.OrderNo == mesOrderSelect.OrderNo)
|
// .ExecuteCommand();
|
}
|
|
return isN;
|
}
|
|
/// <summary>
|
/// 删除指定机器的工单选择记录
|
/// </summary>
|
/// <param name="dto">包含机器编号的数据传输对象</param>
|
/// <returns>删除的记录数</returns>
|
public int Remove(OrderSelectDto dto)
|
{
|
// 删除该机器所有未显示的工单选择记录
|
return Db.Deleteable<MesOrderSelect>()
|
.Where(s => s.MachineNo == dto.MachineNo
|
&& s.IsShow == 0)
|
.ExecuteCommand();
|
}
|
|
/// <summary>
|
/// 检查是否为新工单
|
/// </summary>
|
/// <param name="query">包含工单号的查询条件</param>
|
/// <returns>true表示是新工单,false表示已存在</returns>
|
public bool isNew(OrderMachineDto query)
|
{
|
// 获取当前日期
|
var date = DateTime.Now.ToString("yyyy-MM-dd");
|
|
// 查询当天是否存在该工单的选择记录
|
var count = Db.Queryable<MesOrderSelect>()
|
.Where(s => s.OrderNo == query.orderNo
|
&& s.EditDate == date).Count();
|
|
// 如果记录数为0,则为新工单
|
return count <= 0;
|
}
|
}
|