#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 { private readonly IOrderrowsRepository _orderrowsRepository; public OrderDetailsService(IOrderDetailsRepository BaseDal, IOrderrowsRepository orderrowsRepository) : base(BaseDal) { _orderrowsRepository = orderrowsRepository; } 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 < 60) useableStations = useableStations.Where(x => x != 1).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; } public OrderInfo GetOrderInfoByBarcode(string barcode) { try { OrderDetails orderDetails = BaseDal.QueryFirst(x => x.Orderdetails_outid == barcode); if (orderDetails == null) { throw new Exception("未找到条码对应订单信息"); } Orderrows orderrows = _orderrowsRepository.QueryFirst(x => x.id == orderDetails.Orderrowsid); if (orderrows == null) { throw new Exception($"未找到对应订单头信息"); } OrderInfo orderInfo = new OrderInfo() { Barcode = barcode, Length = orderDetails.Orderdetails_length, OrderBatch = orderrows.Orderrows_batchid, OrderHeadId = orderrows.id, OrderNo = orderrows.Orderrows_orderid, OrderRowNum = orderrows.Orderrows_id, Quantity = Convert.ToInt32(orderrows.Orderrows_num), Thickness = orderDetails.Orderdetails_thickness, Width = orderDetails.Orderdetails_width, }; return orderInfo; } catch (Exception ex) { throw new Exception(ex.Message); } } } }