using HslCommunication;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Core;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_ISquareCabinServices;
|
using WIDESEA_Model.Models;
|
using static WIDESEA_DTO.SquareCabin.OrderDto;
|
|
namespace WIDESEA_SquareCabinServices
|
{
|
public partial class Business
|
{
|
#region 获取ERP入库单
|
static string SearchInOrderDate = "2025-11-01 00:00:00";
|
public WebResponseContent GetInOrder()
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder";
|
string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
if (string.IsNullOrEmpty(SearchInOrderDate)) SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
var requestData = new { searchDate = SearchInOrderDate };
|
//SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
var result = HttpHelper.Post(url, requestData.ToJsonString());
|
var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result);
|
if (response == null) return content;
|
if (response.data.Count < 1)
|
{
|
SearchInOrderDate = GetOutOrderDate;
|
return content;
|
}
|
var ordernos = response.data.Select(x => x.order_no).ToList();
|
var existingOrderNos = _cabinOrderServices.Repository.QueryData(x => ordernos.Contains(x.Order_no)).Select(x => x.Order_no).Distinct().ToList();
|
var newOrders = response.data.Where(order => !existingOrderNos.Contains(order.order_no)).ToList();
|
if (newOrders.Count < 1)
|
{
|
SearchInOrderDate = GetOutOrderDate;
|
return content;
|
}
|
int messQty = 0;
|
foreach (var order in newOrders)
|
{
|
try
|
{
|
if (order.order_type == "1")
|
{
|
content = _cabinOrderServices.CreateInboundOrder(order);
|
if (!content.Status) messQty++;
|
}
|
else if (order.order_type == "3")//入库退料
|
{
|
#region 转换为出库单
|
UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo()
|
{
|
order_no = order.order_no,
|
order_type = order.order_type,
|
warehouse_no = order.warehouse_no,
|
details = new List<UpstreamOutOrderDetail>()
|
};
|
foreach (var item in order.details)
|
{
|
UpstreamOutOrderDetail detail = new UpstreamOutOrderDetail()
|
{
|
batch_num = item.batch_num,
|
goods_no = item.goods_no,
|
order_qty = item.order_qty,
|
exp_date = item.exp_date,
|
};
|
upstramOutOrderInfo.details.Add(detail);
|
}
|
#endregion
|
content = _deliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo);
|
if (!content.Status) messQty++;
|
}
|
else if (order.order_type == "5")//报溢入库
|
{
|
content = _cabinOrderServices.CreateCheckInOrder(order);
|
if (!content.Status) messQty++;
|
}
|
}
|
catch (Exception ex)
|
{
|
continue;
|
}
|
}
|
if (messQty == 0) SearchInOrderDate = GetOutOrderDate;
|
return content.OK();
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine("获取ERP入库单信息异常:" + ex.Message);
|
return content.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 获取ERP出库单
|
static string SearchOutOrderDate = "2025-11-01 00:00:00";
|
public WebResponseContent GetOutOrder()
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder";
|
string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
if (string.IsNullOrEmpty(SearchOutOrderDate)) SearchOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
var requestData = new { searchDate = SearchOutOrderDate };
|
var result = HttpHelper.Post(url, requestData.ToJsonString());
|
var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result);
|
|
if (response == null) return content;
|
if (response.data.Count < 1)
|
{
|
SearchOutOrderDate = GetOutOrderDate;
|
return content;
|
}
|
var ordernos = response.data.Select(x => x.order_no).ToList();
|
var existingOutOrderNos = _deliveryOrderServices.Repository.QueryData(x => ordernos.Contains(x.Out_no)).Select(x => x.Out_no).Distinct().ToList();
|
var newOutOrders = response.data.Where(outorder => !existingOutOrderNos.Contains(outorder.order_no)).ToList();
|
if (newOutOrders.Count < 1)
|
{
|
SearchOutOrderDate = GetOutOrderDate;
|
return content;
|
}
|
int messQty = 0;
|
foreach (var outorder in newOutOrders)
|
{
|
if (outorder.order_type == "1")// 正常出库单
|
{
|
content = _deliveryOrderServices.CreateOutboundOrder(outorder);
|
if (!content.Status) messQty++;
|
}
|
else if (outorder.order_type == "2")//出库退货
|
{
|
#region 转换成入库单
|
UpstreamOrderInfo order = new UpstreamOrderInfo()
|
{
|
order_no = outorder.order_no,
|
order_type = outorder.order_type,
|
warehouse_no = outorder.warehouse_no,
|
details = new List<UpstreamOrderDetail>()
|
};
|
foreach (var item in outorder.details)
|
{
|
UpstreamOrderDetail detail = new UpstreamOrderDetail()
|
{
|
batch_num = item.batch_num,
|
goods_no = item.goods_no,
|
order_qty = item.order_qty,
|
exp_date = item.exp_date,
|
};
|
order.details.Add(detail);
|
}
|
#endregion
|
content = _cabinOrderServices.CreateInboundOrder(order);
|
if (!content.Status) messQty++;
|
}
|
else if (outorder.order_type == "6")//报损出库
|
{
|
content = _deliveryOrderServices.CreateCheckOutOrder(outorder);
|
if (!content.Status) messQty++;
|
}
|
}
|
if (messQty == 0) SearchOutOrderDate = GetOutOrderDate;
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
#endregion
|
}
|
}
|