2025-06-23 15:41:15 +08:00
|
|
|
|
using JetBrains.Annotations;
|
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
2025-07-01 14:20:07 +08:00
|
|
|
|
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;
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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
|
|
|
|
|
{
|
2025-07-01 14:20:07 +08:00
|
|
|
|
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;
|
|
|
|
|
|
2025-07-01 14:20:07 +08:00
|
|
|
|
public SilkService(IPrinterService printerService,IRepository<Produce> produceRepository ,IRepository<Silk> silkRepository,ILogger<SilkService> logger)
|
2025-06-23 15:41:15 +08:00
|
|
|
|
{
|
2025-07-01 14:20:07 +08:00
|
|
|
|
this.printerService = printerService;
|
|
|
|
|
this.produceRepository = produceRepository;
|
2025-06-23 15:41:15 +08:00
|
|
|
|
this.silkRepository = silkRepository;
|
|
|
|
|
this.logger = logger;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
2025-07-01 14:20:07 +08:00
|
|
|
|
/// 根据数量查询丝锭
|
|
|
|
|
/// </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]
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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);
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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
|
|
|
|
|
2025-06-25 16:06:49 +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
|
|
|
|
{
|
2025-07-01 14:20:07 +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,
|
2025-07-01 14:20:07 +08:00
|
|
|
|
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();
|
2025-07-01 14:20:07 +08:00
|
|
|
|
pageOutput.Data = data.OrderByDescending(x => x.Id);
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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)
|
|
|
|
|
{
|
2025-07-01 14:20:07 +08:00
|
|
|
|
if (await silkRepository.AnyAsync(x => x.Code == input.Code&&x.IsDelete==0))
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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,
|
2025-07-01 14:20:07 +08:00
|
|
|
|
Name = input.Name,
|
2025-06-24 18:26:51 +08:00
|
|
|
|
Type = input.Type,
|
|
|
|
|
IsDelete = 0
|
2025-06-23 15:41:15 +08:00
|
|
|
|
};
|
2025-07-01 14:20:07 +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);
|
|
|
|
|
|
2025-07-01 14:20:07 +08:00
|
|
|
|
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]
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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]
|
2025-06-25 16:06:49 +08:00
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|