using DS.Module.Core; using DS.Module.Core.Data; using DS.WMS.Core.Application.Dtos; using DS.WMS.Core.Application.Entity; using DS.WMS.Core.Application.Interface; using DS.WMS.Core.Fee.Dtos; using Microsoft.AspNetCore.Mvc; namespace DS.WMS.FeeApi.Controllers { /// /// 付费申请API /// public class PaymentApplicationController : ApiController { readonly IPaymentApplicationService _service; /// /// 初始化 /// /// public PaymentApplicationController(IPaymentApplicationService service) { _service = service; } /// /// 根据业务编号及类型获取该票业务的币别 /// /// 业务ID与业务类型 /// [HttpPost, Route("GetCurrencies")] public async Task>> GetCurrenciesAsync([FromBody] params FeeClient[] items) { return await _service.GetCurrenciesAsync(items); } /// /// 获取列表 /// /// /// [HttpPost, Route("GetList")] public async Task> ListAsync([FromBody] PageRequest request) { return await _service.GetListAsync(request); } /// /// 获取待付费的业务列表 /// /// /// [HttpPost, Route("GetBizList")] public async Task>> BizListAsync([FromBody] PageRequest request) { return await _service.GetBizListAsync(request); } /// /// 获取申请单详情 /// /// 申请单ID /// [HttpGet, Route("Get")] public async Task> GetAsync([FromQuery] long id) { return await _service.GetAsync(id); } /// /// 根据业务编号及类型获取关联费用记录 /// /// /// [HttpPost, Route("GetFees")] public async Task> GetFeesAsync([FromBody] params FeeClient[] items) { if (items == null || items.Length == 0) return DataResult.Failed("缺少请求参数"); return await _service.GetFeesAsync(items); } /// /// 提交申请单 /// /// 申请单 /// [HttpPost, Route("Save")] public async Task> SaveAsync([FromBody] PaymentApplication application) { return await _service.SaveAsync(application); } /// /// 按业务提交申请单 /// /// /// [HttpPost, Route("BizSave")] public async Task> SaveAsync([FromBody] ApplicationRequest request) { if (request.Items == null || request.Items.Count == 0) return DataResult.Failed("缺少请求参数"); return await _service.SaveAsync(request); } /// /// 删除申请单明细 /// /// 申请单明细ID /// [HttpPost, Route("DeleteDetail")] public async Task DeleteDetailAsync([FromBody] IdModel model) { if (model.Ids == null || model.Ids.Length == 0) return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest); return await _service.DeleteDetailAsync(model.Ids); } /// /// 删除申请单 /// /// 申请单ID /// [HttpPost, Route("Delete")] public async Task DeleteAsync([FromBody] IdModel model) { if (model.Ids == null || model.Ids.Length == 0) return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest); return await _service.DeleteAsync(model.Ids); } /// /// 发起审批 /// /// 申请单ID /// [HttpPost, Route("ApplyAudit")] public async Task ApplyAuditAsync([FromBody] IdModel model) { if (model.Ids == null || model.Ids.Length == 0) return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest); return await _service.SubmitApprovalAsync(TaskBaseTypeEnum.APPLICATION_PAYMENT_AUDIT, model.Remark, model.Ids); } /// /// 撤销审批 /// /// 申请单ID /// [HttpPost, Route("Withdraw")] public async Task WithdrawAsync([FromBody] IdModel model) { if (model.Ids == null || model.Ids.Length == 0) return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest); return await _service.WithdrawAsync(model.Ids); } /// /// 标识收到发票 /// /// 申请单ID /// [HttpPost, Route("SetInvoiceReceived")] public async Task SetInvoiceReceivedAsync([FromBody] IdModel model) { if (model.Ids == null || model.Ids.Length == 0 || model.Value == null) return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest); bool flag = Convert.ToBoolean(model.Value); return await _service.SetInvoiceReceivedAsync(flag, model.Ids); } } }