You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

210 lines
6.0 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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