using System.Linq.Expressions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Entities.Dto.Queries; namespace Tnb.WarehouseMgr.Interfaces { /// /// 库房业务(出入库)接口 /// public interface IWareHouseService { /// /// 原材料入库 /// SemaphoreSlim s_taskExecuteSemaphore_YCLInstock { get; } /// /// 原材料出库 /// SemaphoreSlim s_taskExecuteSemaphore_YCLOutstock { get; } /// /// 暂存仓入库 /// SemaphoreSlim s_taskExecuteSemaphore_F2ZCCInstock { get; } /// /// 暂存仓出库 /// SemaphoreSlim s_taskExecuteSemaphore_F2ZCCOutstock { get; } /// /// 入库策略 /// /// /// Task> InStockStrategy([FromQuery] InStockStrategyQuery input); /// /// 入库策略(包材库) /// /// /// Task> InStockStrategyBCK([FromQuery] InStockStrategyQuery input); /// /// 包材库2楼入库策略 /// /// /// Task> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input); /// /// 出库策略 /// /// /// Task> OutStockStrategy([FromQuery] OutStockStrategyQuery input); /// /// 缓存仓出库策略 /// /// /// /// Task> OutStockStrategyHCC([FromQuery] OutStockStrategyQuery input); /// /// 中储仓到二楼出库策略 /// /// /// /// Task>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input); /// /// 出库策略-销售出库下发 /// /// /// Task>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input); /// /// 路径算法 /// /// /// /// Task> PathAlgorithms(string pStartId, string pEndId); /// /// 是否为一楼出库工位 /// /// /// string[] GetFloor1OutstockLocation(); /// /// 是否为二楼包材出库工位 /// /// /// string[] GetFloor2BCOutstockLocation(); /// /// 是否为供料三工位库位 /// /// /// string[] GetFloor1GLSGWOutstockLocation(); /// /// 是否为外协三工位库位 /// /// /// string[] GetFloor1WXSGWOutstockLocation(); /// /// 生成预任务 /// /// /// Task GenPreTask(List preTasks, List preTaskCodes, ISqlSugarClient dbConn = null); /// /// 生成预任务成功后操作 /// /// /// Task GenInStockTaskHandleAfter(GenPreTaskUpInput input, Expression> setCarryColumnsExp, Expression> setLocaionColumbExp, ISqlSugarClient dbConn = null); /// /// 生成任务执行 /// /// Task GenTaskExecute(); /// /// 任务完成 /// /// /// Task TaskComplate(TaskCompleUpInput input); /// /// 任务执行 /// /// /// Task TaskExecute(TaskExecuteUpInput input); /// /// 任务执行取操作返回(后续操作) /// /// /// /// Task TaskExecuteAfter(TaskExecuteAfterUpInput input); /// /// 路径算法(同时出库多个载具) /// /// /// /// /// Task> PathAlgorithmsEle(string pStartId, string pEndId, int ele); Task SsxControl(WmsDistaskH disTask, string action); Func AddUnExecuteTask { get; set; } Task Check(string code, string action); /// /// // 二楼机械臂(请求) /// /// Task Floor2MechanicalConfirm(WmsDistaskH disTask, string action); /// /// // 二楼机械臂(完成) /// /// Task Floor2MechanicalComplete(WmsDistaskH disTask, string action); /// /// 二楼kiva把料架送到下升降机后生成中储仓入库任务 /// /// 料架id /// Task Floor2EmptyCarryCreateZZCPretask(string rackid); /// /// 生成预任务接口 CTU需要传task_type /// /// /// [HttpPost, NonUnify, AllowAnonymous] Task CommonCreatePretask(CommonCreatePretaskInput input, ISqlSugarClient db = null); /// /// 执行到目标楼层电梯任务 /// /// /// Task ExecuteTargetFloorTask(List disTasks); Task FindElevatorFromPars(ElevagorInfoQuery input); } }