using Gatedge.K3Cloud.Utils; using Gatedge.K3Cloud.Utils.Model.K3Request; using Gatedge.ScanCode.Common; using Gatedge.ScanCode.Extension; using Gatedge.ScanCode.Models.Dto; using Gatedge.ScanCode.Models.Dto.BarRecord; using Gatedge.ScanCode.Services; using Gatedge.ScanCode.Services.IServices; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Gatedge.ScanCode.Controllers { /// /// 采购订单 /// [Route("api/[controller]")] [Authorize] [ApiController] public class PurchaseOrderController : ControllerBase { private readonly string _FormName = "采购订单"; private readonly string _FormId = "PUR_PurchaseOrder"; private readonly K3CloudApiUtils _utils; /// /// 构造方法 /// public PurchaseOrderController(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 = "FID,FBillNo,FDate,FSupplierId.FName", Limit = Param.PageSize, StartRow = Param.PageSize * (Param.PageIndex - 1), }; //// 已审核未禁用 var loginInfo = User.GetLoginInfoByClaimsPrincipal(); queryParam.FilterString = $"FDocumentStatus = 'C' AND FFORBIDSTATUS = 'A' AND FPurchaseOrgId.FNumber = '{loginInfo.OrgNum}' AND (FBILLNO LIKE '{Param.QueryString}%') "; _utils.InitCloudApi(loginInfo); var data = _utils.QueryList(queryParam); return AjaxResult.Success(data).AddBillId(_FormId); } /// /// 查看 /// /// /// [HttpGet("View")] public AjaxResult View([FromQuery] View Param) { var loginInfo = User.GetLoginInfoByClaimsPrincipal(); _utils.InitCloudApi(loginInfo); var result = _utils.Query(_FormId, Param); return AjaxResult.Success(result); } /// /// 批量下推采购入库单 /// /// /// [HttpPost("BatchPushPurInStock")] public AjaxResult BatchPushPurInStock([FromBody] BarRecord barRecord) { var loginInfo = User.GetLoginInfoByClaimsPrincipal(); _utils.InitCloudApi(loginInfo); IPurchaseOrderService service = new PurchaseOrderService(_utils); var result = service.PushPurInStock(barRecord.BarRecordId); if (!result.IsSuccess) { return AjaxResult.Error("收料错误", result); } return AjaxResult.Success(result); } } }