#region << 版 本 注 释 >> /*---------------------------------------------------------------- * 命名空间:WIDESEAWCS_TaskInfoService * 创建者:胡童庆 * 创建时间:2024/8/2 16:13:36 * 版本:V1.0.0 * 描述: * * ---------------------------------------------------------------- * 修改人: * 修改时间: * 版本:V1.0.1 * 修改说明: * *----------------------------------------------------------------*/ #endregion << 版 本 注 释 >> using AutoMapper; using Microsoft.AspNetCore.Mvc.RazorPages; using NetTaste; using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Enums; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO.BasicInfo; using WIDESEAWCS_IBasicInfoRepository; using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_BasicInfoService { public class OrderDetailsService : ServiceBase, IOrderDetailsService { public OrderDetailsService(IOrderDetailsRepository BaseDal) : base(BaseDal) { } private static bool toggle = false; private static int lastStaion = 0; public int GetOrderDetails(string barcode, List useableStations, out ProductInfoDTO productInfo) { OrderDetails? orderDetails = BaseDal.QueryData(x => x.Orderdetails_outid == barcode).FirstOrDefault(); if (orderDetails != null) { productInfo = new ProductInfoDTO() { Code = barcode, Height = Convert.ToInt32(orderDetails.Orderdetails_thickness), Length = Convert.ToInt32(orderDetails.Orderdetails_length), Width = Convert.ToInt32(orderDetails.Orderdetails_width), }; useableStations = useableStations.OrderByDescending(x => x).ToList(); if (orderDetails.Orderdetails_width <= 800 && orderDetails.Orderdetails_width >= 50)//1,2,3 { if (lastStaion == 0) { lastStaion = useableStations.FirstOrDefault(); return lastStaion; } else { int index = useableStations.IndexOf(lastStaion); if (index + 1 < useableStations.Count) { lastStaion = useableStations[index + 1]; return lastStaion; } else { lastStaion = useableStations.FirstOrDefault(); return lastStaion; } } } else if (orderDetails.Orderdetails_width >= 800 && orderDetails.Orderdetails_width <= 1220)//1,2 { useableStations = useableStations.Where(x => x != 3).ToList(); if (useableStations.FirstOrDefault() == 0) { return -2; } if (lastStaion == 0) { lastStaion = useableStations.FirstOrDefault(); return lastStaion; } else { int index = useableStations.IndexOf(lastStaion); if (index + 1 < useableStations.Count) { lastStaion = useableStations[index + 1]; return lastStaion; } else { lastStaion = useableStations.FirstOrDefault(); return lastStaion; } } } else { return -2; } } else { productInfo = new ProductInfoDTO(); return -1; } } public string ToMesScan_sync = WIDESEAWCS_Core.Helper.AppSettings.Configuration["ToMesScan_sync"]; public ToMesBarcRes? ToMesBarc(int Barcodes) { ToMesBarc toMes = new ToMesBarc() { id = Barcodes.ToString(), type = "1", }; ToMesBarcRes? toMesBarc = JsonConvert.DeserializeObject(HttpHelper.Post($"{ToMesScan_sync}", toMes.Serialize())); return toMesBarc; } } }