using JetBrains.Annotations; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Seyounth.Auto.Hs.Runtime.Printer; 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; 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 produceRepository; private readonly IRepository silkRepository; private readonly ILogger logger; public SilkService(IPrinterService printerService,IRepository produceRepository ,IRepository silkRepository,ILogger logger) { this.printerService = printerService; this.produceRepository = produceRepository; this.silkRepository = silkRepository; this.logger = logger; } /// /// 根据数量查询丝锭 /// /// /// [HttpGet] public async Task> 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(); } /// /// 查询丝锭 /// /// /// [HttpPost] public async Task> GetSilkList(SilkInput input) { var silklist = await silkRepository.GetQueryableAsync(); 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)); var result = silklist.PageResult(input.Page, input.PageSize); var data = result.Queryable.Select(x=>new SilkDto() { Name=x.Name, 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 }); PageOutput pageOutput = new PageOutput(); pageOutput.Total = silklist.Count(); pageOutput.Data = data.OrderByDescending(x => x.Id); pageOutput.PageIndex = input.Page; pageOutput.PageSize = input.PageSize; return pageOutput; } /// /// 添加丝锭 /// /// /// [HttpPost] public async Task InsertSilk(SilkDto input) { if (await silkRepository.AnyAsync(x => x.Code == input.Code&&x.IsDelete==0)) throw Oops.Oh("条码已存在,不允许添加"); 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, Type = input.Type, IsDelete = 0 }; 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); } /// /// 打印丝锭 /// /// /// [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); } /// /// 修改丝锭 /// /// /// [HttpPost] public async Task UpdateSilk(SilkDto input) { var silks = await silkRepository.FirstOrDefaultAsync(x=>x.Id==input.Id); silks.Name = input.Name; 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); } /// /// 删除丝锭 /// /// /// [HttpPost] public async Task DeleteSilk(DelInput input) { var silk = await silkRepository.FirstOrDefaultAsync(x => x.Id == input.id); if (silk == null) throw Oops.Oh("删除失败,数据为空"); silk.IsDelete = 1; await silkRepository.UpdateAsync(silk); } /// /// 批量删除丝锭 /// /// /// [HttpPost] public async Task DeletesSilks(DelInput input) { var silks = await silkRepository.GetListAsync(x => input.ids.Contains(x.Id)); if (silks.Count == 0) throw Oops.Oh("删除失败,数据为空"); foreach (var silk in silks) { silk.IsDelete = 1; } await silkRepository.UpdateManyAsync(silks); } } }