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.

120 lines
4.1 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.WMS.Core.Fee.Dtos;
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Fee.Interface;
using Mapster;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.FeeApi.Controllers
{
/// <summary>
/// 费用记录服务
/// </summary>
public class FeeRecordController : ApiController
{
private readonly IFeeRecordService _invokeService;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="invokeService"></param>
public FeeRecordController(IFeeRecordService invokeService)
{
_invokeService = invokeService;
}
/// <summary>
/// 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("GetList")]
public DataResult<List<FeeRecordRes>> GetList([FromBody] PageRequest request)
{
var res = _invokeService.GetListByPage(request);
return res;
}
/// <summary>
/// 根据指定的查询条件获取统计信息
/// </summary>
/// <param name="request">查询条件</param>
/// <returns></returns>
[HttpPost, Route("FeeStatistics")]
public DataResult<FeeStatistics> FeeStatistics([FromBody] FeeStatisticsRequest request)
{
if (request == null)
return DataResult<FeeStatistics>.Failed("参数无效", MultiLanguageConst.IllegalRequest);
var res = _invokeService.GetList(request.QueryCondition);
if (!res.Succeeded)
return DataResult<FeeStatistics>.Error(res.Message);
var stat = new FeeStatistics(res.Data);
return DataResult<FeeStatistics>.Success(stat);
}
/// <summary>
/// 根据费用明细转换为模板明细
/// </summary>
/// <param name="ids">费用明细ID</param>
/// <returns></returns>
[HttpGet, Route("ReadAsTemplate")]
public DataResult<List<FeeTemplateDetailRes>> ReadAsTemplate([FromQuery] long[] ids)
{
var res = _invokeService.ReadAsTemplate(ids);
return res;
}
/// <summary>
/// 提交费用
/// </summary>
/// <param name="recordSubmit">费用提交参数</param>
/// <returns></returns>
[HttpPost, Route("Submit")]
public DataResult Submit([FromBody] FeeRecordSubmit recordSubmit)
{
if (recordSubmit == null)
return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest);
if (recordSubmit.Items.Any(x => x.FeeStatus != FeeStatusEnum.Entering))
return DataResult.Failed("只能提交状态为‘录入’的费用", MultiLanguageConst.IllegalRequest);
var list = recordSubmit.Items.Select(x => x.Adapt<FeeRecord>());
return _invokeService.InsertOrUpdate(recordSubmit.BusinessId, list);
}
/// <summary>
/// 根据一组模板ID创建费用记录引入模板
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpPost, Route("CreateByTemplate")]
public DataResult CreateByTemplate([FromBody] FeeRecordByTemplate request)
{
if (request == null || request.TemplateIdList.Length == 0)
return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest);
var res = _invokeService.CreateByTemplate(request.BusinessId, request.TemplateIdList);
return res;
}
/// <summary>
/// 根据费用记录ID删除
/// </summary>
/// <param name="model">费用记录ID</param>
/// <returns></returns>
[HttpPost, Route("Delete")]
public DataResult Delete([FromBody] IdModel model)
{
if (model == null || model.Ids.Length == 0)
return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest);
var res = _invokeService.Delete(model.Ids);
return res;
}
}
}