using Microsoft.CodeAnalysis.CSharp.Syntax; using WcsMain.ApiServe.Controllers.Dto; using WcsMain.ApiServe.Controllers.Dto.WcsDto.StackerConvey; using WcsMain.ApiServe.Factory; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.EquipOperation.Convey; using WcsMain.EquipOperation.StackerConvey; using WcsMain.Plugins; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.ApiServe.Service.WcsService; /// /// 库前输送线的 Service /// [Service] public class StackerConveyService(AppStackerConveyDao stackerConveyDao, ConveyOperation conveyOperation) { /// /// 查询所有的库前输送线信息 /// /// public WcsApiResponse>? QueryStackerConveyInfo() { List? stackerConveys = stackerConveyDao.Query(); return stackerConveys == default ? WcsApiResponseFactory.DataBaseErr>() : WcsApiResponseFactory.Success(stackerConveys); } /// /// 查询所有的库前输送线状态信息 /// /// public WcsApiResponse>? QueryStackerConveyStatus() { List? stackerConveys = stackerConveyDao.Query(); if(stackerConveys == default) return WcsApiResponseFactory.DataBaseErr>(); if(stackerConveys.Count == 0) return WcsApiResponseFactory.Fail>(default, "未找到库前输送机数据,请检查基础资料"); List responseData = []; foreach (var stackerConvey in stackerConveys) { StackerConveyStatusResponse stackerConveyStatusResponse = ObjectCopy.CopyProperties(stackerConvey); stackerConveyStatusResponse.Message = "查询成功"; // 读取条码 (string? errText, string? code) = conveyOperation.ReadConveyCode(stackerConvey.WcsLocation); if(!string.IsNullOrEmpty(errText)) { stackerConveyStatusResponse.Message = errText; responseData.Add(stackerConveyStatusResponse); continue; } stackerConveyStatusResponse.Code = code; // 读取允许取放货状态 // ---- 取货站台 if(stackerConvey.LocationType == 1) { stackerConveyStatusResponse.AllowAction = conveyOperation.AllowGetVehicle(stackerConvey.WcsLocation![..1]); } if(stackerConvey.LocationType == 2) { stackerConveyStatusResponse.AllowAction = conveyOperation.AllowSetVehicle(stackerConvey.WcsLocation![..1]); } responseData.Add(stackerConveyStatusResponse); } return WcsApiResponseFactory.Success(responseData); } }