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 InvoiceApplicationController : ApiController { readonly IInvoiceApplicationService _service; /// /// 初始化 /// /// public InvoiceApplicationController(IInvoiceApplicationService service) { _service = service; } /// /// 获取列表 /// /// /// [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); //} /// /// 根据业务编号及类型获取关联费用记录 /// /// 业务ID和类型 /// //[HttpPost, Route("GetFees")] //public async Task> GetFeesAsync([FromBody] params BizItem[] items) //{ // if (items == null || items.Length == 0) // return DataResult.Failed("缺少请求参数"); // return await _service.GetFeesAsync(items); //} /// /// 提交申请单 /// /// 申请单 /// [HttpPost, Route("Save")] public async Task SaveAsync([FromBody] InvoiceApplication 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(AuditType.PaidApplication, 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); } /// /// 获取模板字段 /// /// /// /// [HttpGet, Route("GetTemplateFields")] public DataResult> GetTemplateFields( [FromServices] IInvoiceTemplateService templateService, [FromServices] IHostEnvironment host) { return templateService.GetFields(host); } /// /// 获取模板列表 /// /// /// 如果为空,则创建默认模板 /// [HttpGet, Route("GetTemplateList")] public DataResult> GetTemplateList( [FromServices] IInvoiceTemplateService templateService, [FromQuery] bool createIfEmpty = true) { return templateService.GetList(createIfEmpty); } /// /// 保存模板 /// /// /// 发票模板 /// [HttpPost, Route("SaveTemplate")] public DataResult> SaveTemplate( [FromServices] IInvoiceTemplateService templateService, [FromBody] params InvoiceTemplate[] templates) { return templateService.Save(templates); } } }