using Gatedge.K3Cloud.Utils; using Gatedge.K3Cloud.Utils.Common; using Gatedge.K3Cloud.Utils.Model.K3Request; using Gatedge.ScanCode.Common; using Gatedge.ScanCode.Extension; using Gatedge.ScanCode.Models.Dto; using Gatedge.ScanCode.Services; using Gatedge.ScanCode.Services.IServices; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Security.Claims; namespace Gatedge.ScanCode.Controllers { /// /// 仓库 /// [Route("api/[controller]")] [ApiController] [Authorize] public class StockController : ControllerBase { private readonly string _FormName = "仓库"; private readonly string _FormId = "BD_STOCK"; private readonly K3CloudApiUtils _utils; /// /// 构造函数 /// /// public StockController(K3CloudApiUtils utils) { _utils = utils; } /// /// 获取列表 /// /// /// [HttpGet("List")] public AjaxResult List([FromQuery] PageParam Param) { if (Param.PageSize <= 0 || Param.PageIndex <= 0) { var errMes = string.Format("传递的参数不合法,请检查PageIndex:{0},PageSize:{1}", Param.PageIndex, Param.PageSize); return AjaxResult.Error(500, errMes); } Query queryParam = new Query() { FormId = this._FormId, // 仓库Id、 FieldKeys = "FSTOCKID,FNUMBER,FNAME,FIsOpenLocation,FFlexId,FFlexName,FStockFlexDetail_FDetailID,FFlexEntryName", Limit = Param.PageSize, StartRow = Param.PageSize * (Param.PageIndex - 1), }; // 已审核未禁用 queryParam.FilterString = string.Empty; var loginInfo = User.GetLoginInfoByClaimsPrincipal(); _utils.InitCloudApi(loginInfo); queryParam.FilterString += $"FDocumentStatus = 'C' AND FFORBIDSTATUS = 'A' AND FUseOrgId.FNumber = '{loginInfo.OrgNum}' "; FilterList filterString = new FilterList().AddAuditedItems().AddNotCancelItems("FForbidStatus"); if (Param.QueryString != string.Empty && Param.QueryString != null) { queryParam.FilterString += $" AND (FNAME LIKE '%{Param.QueryString}%' OR FNUMBER LIKE '%{Param.QueryString}%')"; } IStockService service = new StockService(_utils); var data = service.List(queryParam); return AjaxResult.Success(data).AddBillId(_FormId); } /// /// 查看 /// /// /// [HttpGet("View")] public AjaxResult View([FromQuery] View Param) { var loginInfo = User.GetLoginInfoByClaimsPrincipal(); _utils.InitCloudApi(loginInfo); IStockService service = new StockService(_utils); var result = service.View(Param); return AjaxResult.Success(result).AddBillId(_FormId); } } }