From 18ef8c37e6290ba6f47cbd5bbd26e56a682d767e Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 29 九月 2025 16:34:15 +0800
Subject: [PATCH] 1
---
代码管理/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs | 182 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 152 insertions(+), 30 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
index 559beea..a22e852 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
@@ -14,6 +14,8 @@
using WIDESEA_Model.Models;
using WIDESEA_SquareCabinRepository;
using static WIDESEA_DTO.SquareCabin.OrderDto;
+using static WIDESEA_DTO.SquareCabin.TowcsDto;
+
namespace WIDESEA_SquareCabinServices
{
@@ -23,90 +25,191 @@
{
}
-
+ static string SearchDate = "";
/// <summary>
/// 鑾峰彇涓婃父鍑哄簱鍗� 0鎴愬姛1澶辫触
/// </summary>
/// <param name="searchDate"></param>
/// <returns></returns>
- public WebResponseContent GetUpstreamOutOrder(DateTime searchDate)
+ public WebResponseContent GetUpstreamOutOrder()
{
var responseContent = new WebResponseContent();
try
{
- //璇锋眰鍦板潃
- var url = "http:/127.0.0.1:9000/GYZ2/95fck/outOrder";
- //璇锋眰鍙傛暟
- var requestDate = new
- {
- searchDate = searchDate.ToString("yyyy-MM-dd:mm:ss")
- };
+ // 璇锋眰鍦板潃
+ var url = "http://127.0.0.1:9000/GYZ2/95fck/outOrder";
- //鍙戣捣璇锋眰
- var reslu = HttpHelper.Post(url, requestDate.ToJsonString());
- //鍙嶅簭鍒楀寲
- var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(reslu);
+ if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ //// 璇锋眰鍙傛暟
+ var requestData = new
+ {
+ searchDate = SearchDate
+ };
+ SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
+ // 鍙戣捣璇锋眰
+ var result = HttpHelper.Post(url, requestData.ToJsonString());
+
+ // 鍙嶅簭鍒楀寲
+ var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result);
if (response.resultCode != "0")
{
- // 璋冪敤寮傚父鎺ュ彛
- SendErrorToUpstream(1, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
+ SendErrorToUpstream(3, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
}
if (response.data == null || !response.data.Any())
{
- return responseContent.OK("鏃犳柊鍏ュ簱鍗曟暟鎹�");
+ return responseContent.OK("鏃犳柊鍑哄簱鍗曟暟鎹�");
}
- //寮�鍚簨鍔�
Db.Ado.BeginTran();
foreach (var outorder in response.data)
{
try
{
- //鎻掑叆鍑哄簱鍗�
- var OutOders = new Dt_DeliveryOrder
+ // 鎻掑叆鍑哄簱鍗�
+ var entityOrder = new Dt_DeliveryOrder
{
Out_no = outorder.out_no,
Out_type = outorder.out_type,
- Client_no=outorder.client_no,
+ Client_no = outorder.client_no,
Account_time = outorder.account_time,
+ OutStatus= "鏈畬鎴�",
};
- var outorderId = Db.Insertable(outorder).ExecuteReturnIdentity();//杩斿洖涓婚敭id
+ var outorderId = Db.Insertable(entityOrder).ExecuteReturnIdentity();
- //鎻掑叆鍑哄簱鍗曟槑缁�
- var OutOrderDetails = outorder.details.Select(d => new Dt_DeliveryOrderDetail
+ // 鎻掑叆鍑哄簱鍗曟槑缁�
+ var detailEntities = outorder.details.Select(d => new Dt_DeliveryOrderDetail
{
DeliveryOrderId = outorderId,
Goods_no = d.goods_no,
Order_qty = d.out_qty,
Batch_num = d.batch_num,
- Exp_date = d.exp_date
+ Exp_date = d.exp_date,
+ OotDetailStatus="鏂板缓"
}).ToList();
- Db.Insertable(OutOrderDetails).ExecuteCommand();
+ Db.Insertable(detailEntities).ExecuteCommand();
}
catch (Exception ex)
{
-
- // 閽堝鏌愭潯璁㈠崟鎶ラ敊鏃讹紝鎺ㄩ�佸紓甯哥粰涓婃父
SendErrorToUpstream(3, outorder.out_no, ex.Message, "");
- throw; // 鎶涘嚭寮傚父锛岃澶栧眰鎹曡幏鍥炴粴
+ throw; // 璁╁灞傛崟鑾峰苟鍥炴粴
}
}
+
Db.Ado.CommitTran();
- return responseContent.OK("鍚屾鍏ュ簱鍗曟垚鍔�");
+ return responseContent.OK("鍚屾鍑哄簱鍗曟垚鍔�");
}
catch (Exception ex)
{
- // 鍏ㄥ眬寮傚父鏃讹紝涔熸帹閫佸紓甯哥粰涓婃父
SendErrorToUpstream(3, "", ex.Message, "");
Db.Ado.RollbackTran();
return responseContent.Error("鍚屾澶辫触: " + ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 鍑哄簱鍗曟帹閫佺粰 WCS
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent EdiOut()
+ {
+ var responseContent = new WebResponseContent();
+ try
+ {
+ // 1. 鏌ヨ绗﹀悎鏉′欢鐨勮鍗曪紙琛ㄥご=鏂板缓 && 鍖呭惈鏈夋晥鏄庣粏锛�
+ var outOrders = Db.Queryable<Dt_DeliveryOrder>()
+ .Where(o => o.OutStatus == "鏂板缓")
+ .Includes(o => o.Details, d => d.MedicineGoods)
+ .ToList();
+
+ // 2. 鍐嶈繃婊ゆ帀涓嶇鍚堟潯浠剁殑鏄庣粏锛堝彧淇濈暀 Status=0 锛�
+ foreach (var order in outOrders)
+ {
+ order.Details = order.Details.Where(d => d.Status == 0).ToList();
+ }
+
+ if (outOrders == null || !outOrders.Any())
+ {
+ Console.WriteLine("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
+ return responseContent.Error("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
+ }
+
+ foreach (var order in outOrders)
+ {
+ try
+ {
+ // 3. 缁勮 DTO
+ var ediDto = new TowcsDto.ToediOutInfo
+ {
+ customerCode = "905",
+ materialCode = "YY",
+ externalOrderNo = order.Out_no,
+ outOrderType = order.Out_type == "1" ? "10" : order.Out_type == "2" ? "20" : "30",
+ priority = 1,
+ Is_cancel = 0,
+ details = order.Details.Select(d => new TowcsDto.ToeOutdiInDetail
+ {
+ batchNo = d.Batch_num,
+ productCode = d.Goods_no,
+ productName = d.MedicineGoods?.Goods_spm,
+ productSpecifications = d.MedicineGoods?.Model,
+ quantity = (int)d.Order_qty,
+ //stocktakingDetails = order.Out_type == "3"
+ // ? new List<ToOutediInStock>
+ // {
+ // new ToOutediInStock { palletCode = "FC00001", quantity = d.Order_qty.ToString() }
+ // }
+ // : null
+ }).ToList()
+ };
+
+ // 4. 璋冪敤鎺ュ彛
+ var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
+ var result = HttpHelper.Post(url, ediDto.ToJsonString());
+ var resp = JsonConvert.DeserializeObject<TowcsDto.TowcsResponse<object>>(result);
+
+ if (resp != null && resp.code == "0")
+ {
+ // 鏇存柊琛ㄥご鐘舵��
+ Db.Updateable<Dt_DeliveryOrder>()
+ .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "寮�濮�" })
+ .Where(o => o.Id == order.Id)
+ .ExecuteCommand();
+
+ // 鏇存柊鏄庣粏鐘舵��
+ Db.Updateable<Dt_DeliveryOrderDetail>()
+ .SetColumns(d => new Dt_DeliveryOrderDetail { Status = 1,OotDetailStatus="宸插畬鎴�" })
+ .Where(d => d.DeliveryOrderId == order.Id && d.Status == 0)
+ .ExecuteCommand();
+
+ Console.WriteLine($"璁㈠崟 {order.Out_no} 鎺ㄩ�佹垚鍔�");
+ }
+ else
+ {
+ SendErrorToUpstream(3, order.Out_no, resp?.msg ?? "WCS 鎺ㄩ�佸け璐�", "");
+ Console.WriteLine($"璁㈠崟 {order.Out_no} 鎺ㄩ�佸け璐ワ細{resp?.msg}");
+ }
+ //鍒犻櫎鍏ㄩ儴鐘朵负宸插畬鎴愮殑鏄庣粏鍜岃〃澶达紝绉诲叆鍘嗗彶琛�
+ }
+ catch (Exception ex)
+ {
+ SendErrorToUpstream(3, order.Out_no, ex.Message, "");
+ Console.WriteLine($"璁㈠崟 {order.Out_no} 鎺ㄩ�佸紓甯革細{ex.Message}");
+ }
+ }
+
+ return responseContent.OK("鍑哄簱璁㈠崟鎺ㄩ�佸畬鎴�");
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("EdiOut 寮傚父锛�" + ex.Message);
+ return responseContent.Error("鍑哄簱璁㈠崟鎺ㄩ�佸け璐ワ細" + ex.Message);
}
}
@@ -133,6 +236,23 @@
SendErrorToUpstream(4, "", "涓婃父鎺ュ彛杩斿洖澶辫触", "");
return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
}
+ //鍏堟煡澶磋〃
+ var outOerd=Db.Queryable<Dt_DeliveryOrder>()
+ .Where(o => o.Out_no == out_no)
+ .First();
+ if (outOerd == null)
+ {
+ return responseContent.Error($"娌℃湁鎵惧埌璇ュ嚭搴撳崟鍙穥out_no}");
+ }
+ //鏌ユ壘鎵�鏈夋槑缁嗚〃鏄惁閮藉凡瀹屾垚
+ var incompleteDetails = Db.Queryable<Dt_DeliveryOrderDetail>()
+ .Where(d => d.DeliveryOrderId == outOerd.Id && d.OotDetailStatus == "宸插畬鎴�")
+ .ToList();
+ // 鏇存柊鍑哄簱鍗曠姸鎬�
+ Db.Updateable<Dt_DeliveryOrder>()
+ .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "宸插畬鎴�" })
+ .Where(o => o.Out_no == out_no)
+ .ExecuteCommand();
return responseContent.OK("鎿嶄綔鎴愬姛");
}
@@ -170,5 +290,7 @@
Console.WriteLine("寮傚父鎺ュ彛鎺ㄩ�佸け璐ワ細" + e.Message);
}
}
+
+
}
}
--
Gitblit v1.9.3