#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<OrderDetails, IOrderDetailsRepository>, 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<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),
|
};
|
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<ToMesBarcRes>(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);
|
}
|
}
|
}
|
}
|