228 lines
9.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 Seyounth.Auto.Hs.Runtime.Printer;
2025-06-23 15:41:15 +08:00
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 IPrinterService printerService;
private readonly IRepository<Produce> produceRepository;
2025-06-23 15:41:15 +08:00
private readonly IRepository<Silk> silkRepository;
private readonly ILogger<SilkService> logger;
public SilkService(IPrinterService printerService,IRepository<Produce> produceRepository ,IRepository<Silk> silkRepository,ILogger<SilkService> logger)
2025-06-23 15:41:15 +08:00
{
this.printerService = printerService;
this.produceRepository = produceRepository;
2025-06-23 15:41:15 +08:00
this.silkRepository = silkRepository;
this.logger = logger;
}
/// <summary>
/// 根据数量查询丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
public async Task<List<SilkDto>> GetSilkByNum()
{
var produce = await produceRepository.FirstOrDefaultAsync(x => x.IfUse == 1);
var list = await silkRepository.GetQueryableAsync();
list = list.Where(x => x.Status==1 && x.IsDelete == 0 || x.Status == 0 && x.IsDelete == 0);
var data = list.Select(e => new SilkDto()
{
Net_Weight = e.Net_Weight,
Id = e.Id,
Code = e.Code,
Status = e.Status,
Status_Details = e.Status_Details
}).ToList();
return data.OrderByDescending(x => x.Id).ToList().ToList();
}
/// <summary>
2025-06-23 15:41:15 +08:00
/// 查询丝锭
/// </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
{
Name=x.Name,
2025-06-23 15:41:15 +08:00
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,
BoxId=x.BoxId,
Status=x.Status,
Status_Details=x.Status_Details
2025-06-23 15:41:15 +08:00
});
PageOutput<SilkDto> pageOutput = new PageOutput<SilkDto>();
pageOutput.Total = silklist.Count();
pageOutput.Data = data.OrderByDescending(x => x.Id);
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&&x.IsDelete==0))
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,
Name = input.Name,
2025-06-24 18:26:51 +08:00
Type = input.Type,
IsDelete = 0
2025-06-23 15:41:15 +08:00
};
var entity = await silkRepository.InsertAsync(silk,true);
string content = "#!A1" +
"\r\n#N13" +
"\r\n#PC1017/0" +
"\r\n#IMR44/46" +
//"\r\n#HV50" +
"\r\n#PR6//" +
"\r\n#PO0" +
"\r\n#ERNC/1//0.00" +
"\r\n#R0/0" +
"\r\n#T3.64 #J43.18 #FD/0/L #SS100/BVUN/21X21/0 #VW/L/\"YuLinHengShenXinCaiLiaoYouXianGongSi\"#G" +
"\r\n#T11.85 #J40.47 #FD/0/L #SS100/BVUN/19X19/0 #VW/L/\"Yulin Hengshen COLtd\"#G" +
"\r\n#T2.28 #J25.31 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Name " + silk.Name + "\"#G" +
"\r\n#T2.28 #J20.91 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Type " + silk.Type + "\"#G" +
"\r\n#T2.28 #J16.51 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Net Weight " + silk.Net_Weight + "\"#G" +
"\r\n#T2.28 #J12.61 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Length " + silk.Length + "\"#G" +
"\r\n#T2.28 #J7.95 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Date " + silk.Date.ToString() + "\"#G" +
"\r\n#T2.28 #J3.89 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Lot No " + silk.Lot_No + "\"#G" +
"\r\n#T11.51 #J29.54 #FD/0/L #SB13/ONKP2.0/8.80/2 #VW/L/\"" + silk.Code + "\"#G" +
"\r\n#Q1#G" +
"\r\n#!P1" +
"\r\n";
await printerService.PrintAsync(1,content);
}
/// <summary>
/// 打印丝锭
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task PrintSilk(DelInput input)
{
var silk = await silkRepository.FirstOrDefaultAsync(x=>x.Id==input.id);
string content = "#!A1" +
"\r\n#N13" +
"\r\n#PC1017/0" +
"\r\n#IMR44/46" +
//"\r\n#HV50" +
"\r\n#PR6//" +
"\r\n#PO0" +
"\r\n#ERNC/1//0.00" +
"\r\n#R0/0" +
"\r\n#T3.64 #J43.18 #FD/0/L #SS100/BVUN/21X21/0 #VW/L/\"YuLinHengShenXinCaiLiaoYouXianGongSi\"#G" +
"\r\n#T11.85 #J40.47 #FD/0/L #SS100/BVUN/19X19/0 #VW/L/\"Yulin Hengshen COLtd\"#G" +
"\r\n#T2.28 #J25.31 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Name " + silk.Name + "\"#G" +
"\r\n#T2.28 #J20.91 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Type " + silk.Type + "\"#G" +
"\r\n#T2.28 #J16.51 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Net Weight " + silk.Net_Weight + "\"#G" +
"\r\n#T2.28 #J12.61 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Length " + silk.Length + "\"#G" +
"\r\n#T2.28 #J7.95 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Date " + silk.Date.ToString() + "\"#G" +
"\r\n#T2.28 #J3.89 #FD/0/L #SS100/BVUN/20X20/0 #VW/L/\"Lot No " + silk.Lot_No + "\"#G" +
"\r\n#T11.51 #J29.54 #FD/0/L #SB13/ONKP2.0/8.80/2 #VW/L/\"" + silk.Code + "\"#G" +
"\r\n#Q1#G" +
"\r\n#!P1" +
"\r\n";
await printerService.PrintAsync(1, content);
2025-06-23 15:41:15 +08:00
}
/// <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.Name = input.Name;
2025-06-23 15:41:15 +08:00
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
}
}
}