using DS.Module.Core; using DS.Module.Core.Data; using DS.Module.Core.Enums; using DS.WMS.Core.Info.Dtos; using DS.WMS.Core.Info.Interface; using Microsoft.AspNetCore.Mvc; using Masuit.Tools.Systems; using DS.WMS.Core.Fee.Dtos; using DS.WMS.Core.Flow.Dtos; namespace DS.WMS.MainApi.Controllers; /// /// 客户基本信息-模块 /// public class ClientInfoController : ApiController { private readonly IClientInfoService _invokeService; /// /// 构造函数 /// /// public ClientInfoController(IClientInfoService invokeService) { _invokeService = invokeService; } /// /// 提交审核 /// /// /// [HttpPost, Route("SubmitAudit")] public async Task SubmitAuditAsync([FromBody] IdModel idModel) { if (!ModelState.IsValid) return DataResult.Failed(ModelState.GetErrorMessage()); return await _invokeService.SubmitAuditAsync(idModel); } /// /// 执行审核 /// /// /// [HttpPost, Route("Audit")] public async Task AuditAsync([FromBody] AuditRequest request) { if (!ModelState.IsValid) return DataResult.Failed(ModelState.GetErrorMessage()); return await _invokeService.AuditAsync(request); } /// /// 撤销审核 /// /// /// [HttpPost, Route("Withdraw")] public async Task WithdrawAsync([FromBody] IdModel idModel) { if (!ModelState.IsValid) return DataResult.Failed(ModelState.GetErrorMessage()); return await _invokeService.WithdrawAsync(idModel); } /// /// 审核完成回调 /// /// 回调信息 /// [HttpPost, Route("AuditCallback")] public async Task AuditCallbackAsync(FlowCallback callback) { return await _invokeService.AuditCallbackAsync(callback); } /// /// 列表 /// /// /// [HttpPost] [Route("GetClientInfoList")] public async Task>> GetListAsync([FromBody] PageRequest request) { return await _invokeService.GetListAsync(request); } /// /// 确定往来单位是否已使用 /// /// /// [HttpPost, Route("GetUsage")] public async Task>> GetUsageAsync([FromBody] IdModel idModel) { return await _invokeService.GetUsageAsync(idModel.Ids); } /// /// 编辑 /// /// /// [HttpPost, Route("EditClientInfo")] public async Task EditClientInfoAsync([FromBody] ClientInfoReq req) { var res = await _invokeService.EditAsync(req); return res; } /// /// 详情 /// /// /// [HttpGet] [Route("GetClientInfo")] public async Task> GetClientInfoAsync([FromQuery] string id) { return await _invokeService.GetAsync(id); } /// /// 根据ID删除发票明细 /// /// /// [HttpPost, Route("DeleteInvoiceHeader")] public async Task DeleteInvoiceHeaderAsync(IdModel idModel) { if (!ModelState.IsValid) return DataResult.Failed(ModelState.GetErrorMessage(), MultiLanguageConst.IllegalRequest); return await _invokeService.DeleteInvoiceHeaderAsync(idModel); } /// /// 根据ID删除往来单位 /// /// /// [HttpPost, Route("Delete")] public async Task DeleteAsync([FromBody] IdModel model) { if (!ModelState.IsValid) return DataResult.Failed(ModelState.GetErrorMessage(), MultiLanguageConst.IllegalRequest); return await _invokeService.DeleteAsync(model); } /// /// 获取往来单位详情(含有联系人列表) /// /// 查询往来单位 /// 返回往来单位详情 [HttpPost] [Route("GetClientInfoWithContact")] public async Task> GetClientInfoWithContact([FromBody] QueryClientInfo query) { return await _invokeService.GetClientInfoWithContact(query); } /// /// 获取推送通知可选项列表 /// /// [HttpGet, Route("GetNotifications")] public DataResult> GetNotifications() { var list = typeof(PushNotification).GetDescriptionAndValue().Where(x => x.Value > 0) .Select(x => new NotificationItem { Value = x.Value, Name = x.Key }).ToList(); return DataResult>.Success(list); } /// /// 检查客户信息是否重复 /// /// /// [HttpPost, Route("IsAvailable")] public async Task IsAvailableAsync([FromBody] ClientInfoReq req) { return await _invokeService.IsAvailableAsync(req); } #region 导入 /// /// 导入客户/供应商 /// /// 类型:1=客户,2=供应商,3=客户+供应商 /// [HttpGet, Route("Import")] public async Task ImportAsync([FromQuery] int type) { return DataResult.Success; } #endregion }