140 lines
4.6 KiB
C#
Raw Normal View History

2025-06-23 15:41:15 +08:00
using JetBrains.Annotations;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Syc.Basic.Web.WMS.Dto;
using Syc.Basic.Web.WMS.Entitys;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
2025-06-23 15:41:15 +08:00
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace Syc.Basic.Web.WMS.Service
{
[AllowAnonymous]
public class SilkService:ApiService
{
private readonly IRepository<Silk> silkRepository;
private readonly ILogger<SilkService> logger;
public SilkService(IRepository<Silk> silkRepository,ILogger<SilkService> logger)
{
this.silkRepository = silkRepository;
this.logger = logger;
}
/// <summary>
/// 查询丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<SilkDto>> GetSilkList(SilkInput input)
2025-06-23 15:41:15 +08:00
{
var silklist = await silkRepository.GetQueryableAsync();
2025-06-24 18:26:51 +08:00
silklist = silklist.Where(x => x.IsDelete == 0);
if (input.Spec != null)
silklist = silklist.Where(x => x.Type.Contains(input.Spec));
if (input.Lot_No != null)
silklist = silklist.Where(x => x.Type.Contains(input.Lot_No));
2025-06-23 15:41:15 +08:00
var result = silklist.PageResult(input.Page, input.PageSize);
var data = result.Queryable.Select(x=>new SilkDto()
2025-06-23 15:41:15 +08:00
{
Spec=x.Spec,
Net_Weight=x.Net_Weight,
Lot_No=x.Lot_No,
Code=x.Code,
Date=x.Date,
Id=x.Id,
Length=x.Length,
Type=x.Type
});
PageOutput<SilkDto> pageOutput = new PageOutput<SilkDto>();
pageOutput.Total = silklist.Count();
pageOutput.Data = data;
pageOutput.PageIndex = input.Page;
pageOutput.PageSize = input.PageSize;
2025-06-23 15:41:15 +08:00
return pageOutput;
}
/// <summary>
/// 添加丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task InsertSilk(SilkDto input)
{
if (await silkRepository.AnyAsync(x => x.Code == input.Code))
throw Oops.Oh("条码已存在,不允许添加");
2025-06-23 15:41:15 +08:00
var silk = new Silk()
{
Date = DateTime.Now,
Length = input.Length,
Lot_No = input.Lot_No,
Code = input.Code,
Net_Weight = input.Net_Weight,
Spec = input.Spec,
2025-06-24 18:26:51 +08:00
Type = input.Type,
IsDelete = 0
2025-06-23 15:41:15 +08:00
};
await silkRepository.InsertAsync(silk);
}
/// <summary>
/// 修改丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task UpdateSilk(SilkDto input)
{
var silks = await silkRepository.FirstOrDefaultAsync(x=>x.Id==input.Id);
silks.Spec = input.Spec;
silks.Type = input.Type;
silks.Length = input.Length;
silks.Code = input.Code;
silks.Lot_No = input.Lot_No;
silks.Net_Weight = input.Net_Weight;
silks.Date = DateTime.Now;
await silkRepository.UpdateAsync(silks);
}
/// <summary>
/// 删除丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task DeleteSilk(DelInput input)
2025-06-23 15:41:15 +08:00
{
var silk = await silkRepository.FirstOrDefaultAsync(x => x.Id == input.id);
if (silk == null)
throw Oops.Oh("删除失败,数据为空");
2025-06-24 18:26:51 +08:00
silk.IsDelete = 1;
await silkRepository.UpdateAsync(silk);
2025-06-23 15:41:15 +08:00
}
/// <summary>
/// 批量删除丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task DeletesSilks(DelInput input)
2025-06-23 15:41:15 +08:00
{
var silks = await silkRepository.GetListAsync(x => input.ids.Contains(x.Id));
2025-06-24 18:26:51 +08:00
if (silks.Count == 0)
2025-06-23 15:41:15 +08:00
throw Oops.Oh("删除失败,数据为空");
2025-06-24 18:26:51 +08:00
foreach (var silk in silks)
{
silk.IsDelete = 1;
}
await silkRepository.UpdateManyAsync(silks);
2025-06-23 15:41:15 +08:00
}
}
}