| | |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.BasicInfo; |
| | | using WIDESEAWCS_DTO.Enum; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_IBasicInfoRepository; |
| | | using WIDESEAWCS_IBasicInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | |
| | | { |
| | | public class OrderDetailsService : ServiceBase<OrderDetails, IOrderDetailsRepository>, IOrderDetailsService |
| | | { |
| | | public OrderDetailsService(IOrderDetailsRepository BaseDal) : base(BaseDal) |
| | | 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<int> useableStations) |
| | | public int GetOrderDetails(string barcode, List<int> 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), |
| | | }; |
| | | |
| | | int length = productInfo.Length; |
| | | int width = productInfo.Width; |
| | | if (length < width) |
| | | { |
| | | length = productInfo.Width; |
| | | width = productInfo.Length; |
| | | } |
| | | |
| | | useableStations = useableStations.OrderByDescending(x => x).ToList(); |
| | | if (orderDetails.Orderdetails_width <= 800 && orderDetails.Orderdetails_width >= 50)//1,2,3 |
| | | if (width < 100) |
| | | useableStations = useableStations.Where(x => x != 1).OrderByDescending(x => x).ToList(); |
| | | |
| | | if (width <= 800 && width >= 50)//1,2,3 |
| | | { |
| | | if (lastStaion == 0) |
| | | { |
| | |
| | | else |
| | | { |
| | | int index = useableStations.IndexOf(lastStaion); |
| | | if(index + 1 < useableStations.Count) |
| | | if (index + 1 < useableStations.Count) |
| | | { |
| | | lastStaion = useableStations[index + 1]; |
| | | return lastStaion; |
| | |
| | | } |
| | | } |
| | | } |
| | | else if (orderDetails.Orderdetails_width >= 800 && orderDetails.Orderdetails_width <= 1220)//1,2 |
| | | else if (width >= 800 && width <= 1220)//1,2 |
| | | { |
| | | useableStations = useableStations.Where(x => x != 3).ToList(); |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | productInfo = new ProductInfoDTO(); |
| | | return -1; |
| | | } |
| | | } |
| | |
| | | return toMesBarc; |
| | | } |
| | | |
| | | public ToMesBarcRes? ToMes(string barcode, int processId) |
| | | { |
| | | try |
| | | { |
| | | object obj = new |
| | | { |
| | | id = barcode, |
| | | processId |
| | | }; |
| | | |
| | | ToMesBarcRes? toMesBarc = JsonConvert.DeserializeObject<ToMesBarcRes>(HttpHelper.Post($"{ToMesScan_sync}", obj.Serialize())); |
| | | return toMesBarc; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | |
| | | public OrderInfo GetOrderInfoByBarcode(string barcode) |
| | | { |
| | | try |
| | | { |
| | | OrderDetails orderDetails = BaseDal.QueryFirst(x => x.Orderdetails_outid == barcode); |
| | | if (orderDetails == null) |
| | | { |
| | | throw new Exception($"ã{barcode}ãæªæ¾å°æ¡ç 对åºè®¢åä¿¡æ¯"); |
| | | } |
| | | |
| | | Orderrows orderrows = _orderrowsRepository.QueryFirst(x => x.id == orderDetails.Orderrowsid); |
| | | if (orderrows == null) |
| | | { |
| | | throw new Exception($"ã{barcode}ãæªæ¾å°å¯¹åºè®¢å头信æ¯"); |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |