You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.2 KiB
C#

#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.Repository.service.Impl
* 7EB24A6D-0E1A-4C41-83E5-991FBACB2424
*
* WenJY
*
* 2026-05-07 10:08:30
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using System.Linq.Expressions;
using Sln.Wcs.Model.Domain;
using Sln.Wcs.Repository.service.@base;
namespace Sln.Wcs.Repository.service.Impl;
public class LiveTaskQueueServiceImpl: BaseServiceImpl<LiveTaskQueue>, ILiveTaskQueueService
{
private ILiveTaskDetailService liveTaskDetailService;
public LiveTaskQueueServiceImpl(Repository<LiveTaskQueue> rep, ILiveTaskDetailService liveTaskDetailService) : base(rep)
{
this.liveTaskDetailService = liveTaskDetailService;
}
public bool InsertTaskQueue(LiveTaskQueue taskQueue)
{
bool res = false;
try
{
_rep.AsTenant().BeginTran();
res = _rep.Insert(taskQueue);
res = liveTaskDetailService.Insert(taskQueue.taskDetails);
_rep.AsTenant().CommitTran();
}
catch (Exception e)
{
_rep.AsTenant().RollbackTran();
throw new InvalidOperationException($"保存任务队列异常:{e.Message}");
}
return res;
}
public List<LiveTaskQueue> getLiveTaskQueues(Expression<Func<LiveTaskQueue, bool>> exp = null)
{
try
{
var res = _rep.Context.Queryable<LiveTaskQueue>()
.Includes(x => x.taskDetails) // 先加载所有
.Where(exp)
.ToList()
.Select(task => new LiveTaskQueue
{
objId = task.objId,
taskCode = task.taskCode,
materialCode = task.materialCode,
palletBarcode = task.palletBarcode,
materialBarcode = task.materialBarcode,
materialCount = task.materialCount,
taskType = task.taskType,
taskCategory = task.taskCategory,
startPoint = task.startPoint,
endPoint = task.endPoint,
pathCode = task.pathCode,
taskSteps = task.taskSteps,
isFlag = task.isFlag,
remark = task.remark,
taskDetails = task.taskDetails.AsQueryable()
//.Where(detailWhere) // 应用子表查询条件
.Where(p => p.isFlag == 1)
.ToList()
}).ToList();
return res;
}
catch (Exception ex)
{
throw new InvalidOperationException($"通过导航查询方式获取任务信息及下属参数执行异常:{ex.Message}");
}
}
}