2024-09-23 11:54:56 +08:00
|
|
|
|
using Infrastructure.Attribute;
|
|
|
|
|
|
using Infrastructure.Extensions;
|
|
|
|
|
|
using DOAN.Model.PBL.Dto;
|
|
|
|
|
|
using DOAN.Model.PBL;
|
|
|
|
|
|
using DOAN.Repository;
|
|
|
|
|
|
using DOAN.Service.PBL.IService;
|
2025-01-20 15:55:34 +08:00
|
|
|
|
using Aliyun.OSS;
|
|
|
|
|
|
using System;
|
2024-09-23 11:54:56 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace DOAN.Service.PBL
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 库存日志Service业务层处理
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[AppService(ServiceType = typeof(IInventorylogService), ServiceLifetime = LifeTime.Transient)]
|
|
|
|
|
|
public class InventorylogService : BaseService<Inventorylog>, IInventorylogService
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询库存日志列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="parm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public PagedInfo<InventorylogDto> GetList(InventorylogQueryDto parm)
|
|
|
|
|
|
{
|
|
|
|
|
|
var predicate = QueryExp(parm);
|
|
|
|
|
|
|
|
|
|
|
|
var response = Queryable()
|
|
|
|
|
|
.Where(predicate.ToExpression())
|
2024-11-13 15:53:15 +08:00
|
|
|
|
.OrderByDescending(it => it.CreatedTime)
|
2024-09-23 11:54:56 +08:00
|
|
|
|
.ToPage<Inventorylog, InventorylogDto>(parm);
|
|
|
|
|
|
|
|
|
|
|
|
return response;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取详情
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="Id"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Inventorylog GetInfo(string Id)
|
|
|
|
|
|
{
|
|
|
|
|
|
var response = Queryable()
|
|
|
|
|
|
.Where(x => x.Id == Id)
|
|
|
|
|
|
.First();
|
|
|
|
|
|
|
|
|
|
|
|
return response;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 添加库存日志
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="model"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Inventorylog AddInventorylog(Inventorylog model)
|
|
|
|
|
|
{
|
2024-09-23 13:25:25 +08:00
|
|
|
|
model.Id = XUEHUA;
|
2024-09-23 11:54:56 +08:00
|
|
|
|
return Insertable(model).ExecuteReturnEntity();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 修改库存日志
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="model"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public int UpdateInventorylog(Inventorylog model)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Update(model, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询导出表达式
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="parm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private static Expressionable<Inventorylog> QueryExp(InventorylogQueryDto parm)
|
|
|
|
|
|
{
|
|
|
|
|
|
var predicate = Expressionable.Create<Inventorylog>()
|
|
|
|
|
|
.AndIF(!string.IsNullOrEmpty(parm.RackCode), it => it.RackCode.Contains(parm.RackCode))
|
|
|
|
|
|
.AndIF(parm.Operation != null, it => it.Operation == parm.Operation)
|
|
|
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
return predicate;
|
|
|
|
|
|
}
|
2025-01-20 15:55:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导出库存日志
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="model"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public List<Inventorylog> ExportInventorylog(InventorylogExportDto model)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
// 将字符串类型的 StartTime 和 EndTime 转换为 DateTime 类型
|
|
|
|
|
|
if (!DateTime.TryParse(model.StartTime, out DateTime startTime))
|
|
|
|
|
|
{
|
|
|
|
|
|
throw new ArgumentException("开始时间格式无效。");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!DateTime.TryParse(model.EndTime, out DateTime endTime))
|
|
|
|
|
|
{
|
|
|
|
|
|
throw new ArgumentException("结束时间格式无效。");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 设置开始时间为当天的开始时间(00:00:00)
|
|
|
|
|
|
startTime = startTime.Date;
|
|
|
|
|
|
|
|
|
|
|
|
// 设置结束时间为当天的结束时间(23:59:59)
|
|
|
|
|
|
endTime = endTime.Date.AddDays(1).AddTicks(-1);
|
|
|
|
|
|
|
|
|
|
|
|
// 查询符合条件的库存日志
|
|
|
|
|
|
var response = Queryable()
|
|
|
|
|
|
.Where(it => it.CreatedTime >= startTime && it.CreatedTime <= endTime)
|
|
|
|
|
|
.OrderBy(it => it.CreatedTime)
|
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
|
|
|
return response;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 记录异常信息(可以使用日志框架如 NLog 或 Serilog)
|
|
|
|
|
|
Console.WriteLine($"导出库存日志异常: {ex.Message}\n堆栈跟踪: {ex.StackTrace}");
|
|
|
|
|
|
throw; // 或者返回空列表或其他适当的响应
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-09-23 11:54:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|