From 528badf2f1efe5355975de7942fb7a26e71a8e18 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 01 十一月 2025 18:34:37 +0800
Subject: [PATCH] 优化盘点流程、出入库退货流程
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs | 517 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 359 insertions(+), 158 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs"
index 9e2c326..19cb17d 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs"
@@ -15,28 +15,34 @@
using WIDESEA_DTO.SquareCabin;
using WIDESEA_Common;
using System.Xml.Linq;
+using WIDESEA_Common.OrderEnum;
+using static WIDESEA_DTO.SquareCabin.AlarmDto;
+using OfficeOpenXml.Style;
+using System.Security.Policy;
-namespace WIDESEA_WMSServer
+namespace WIDESEA_SquareCabinServices
{
- public class Business : IBusiness
+ public partial class Business : IBusiness
{
private readonly ICabinOrderServices _cabinOrderServices;
private readonly ICabinOrderDetailServices _cabinDetailServices;
private readonly IDeliveryOrderServices _deliveryOrderServices;
private readonly IDeliveryOrderDetailServices _deliveryOrderDetailServices;
+ private readonly IMaterielInfoService _materielInfoService;
private readonly IMessageInfoService _messageInfoService;
private readonly IUnitOfWorkManage _unitOfWorkManage;
- public Business(IDeliveryOrderServices deliveryOrderServices, IUnitOfWorkManage unitOfWorkManage, IDeliveryOrderDetailServices deliveryOrderDetailServices, ICabinOrderServices cabinOrderServices, ICabinOrderDetailServices cabinDetailServices, IMessageInfoService messageInfoService)
+ public Business(IDeliveryOrderServices deliveryOrderServices, IUnitOfWorkManage unitOfWorkManage, IDeliveryOrderDetailServices deliveryOrderDetailServices, ICabinOrderServices cabinOrderServices, ICabinOrderDetailServices cabinDetailServices, IMaterielInfoService materielInfoService, IMessageInfoService messageInfoService)
{
_deliveryOrderServices = deliveryOrderServices;
_unitOfWorkManage = unitOfWorkManage;
_deliveryOrderDetailServices = deliveryOrderDetailServices;
_cabinOrderServices = cabinOrderServices;
_cabinDetailServices = cabinDetailServices;
+ _materielInfoService = materielInfoService;
_messageInfoService = messageInfoService;
}
#region 鑾峰彇ERP鍏ュ簱鍗�
- static string SearchInDate = "2025-09-10 00:00:00";
+ static string SearchInDate = "2025-10-30 00:00:00";
/// <summary>
/// 鑾峰彇涓婃父绯荤粺鐨勫叆搴撳崟
/// </summary>
@@ -58,17 +64,17 @@
searchDate = SearchInDate
//searchDate = "2022-10-10 20:45:16" // 姝g‘鐨勬牸寮�
};
- SearchInDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
+ SearchInDate = 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.resultCode != "0")
+ if (response == null || response.resultCode != "0")
{
// 璋冪敤寮傚父鎺ュ彛
- SendErrorToUpstream(1, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
+ //SendErrorToUpstream(1, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
}
@@ -76,8 +82,10 @@
{
return responseContent.OK("鏃犳柊鍏ュ簱鍗曟暟鎹�");
}
+ var ordernos = response.data.Select(x => x.order_no).ToList();
// 鑾峰彇鎵�鏈夊凡瀛樺湪鐨勫叆搴撳崟鍙�
- var existingOrderNos = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>()
+ var existingOrderNos = _cabinOrderServices.Db.CopyNew().Queryable<Dt_CabinOrder>()
+ .Where(x => ordernos.Contains(x.Order_no))
.Select(x => x.Order_no)
.Distinct().ToList();
@@ -86,7 +94,7 @@
.Where(order => !existingOrderNos.Contains(order.order_no))
.ToList();
- if (!newOrders.Any())
+ if (newOrders.Count < 1)
{
return responseContent.OK("鎵�鏈夊叆搴撳崟宸插瓨鍦紝鏃犻渶鏂板");
}
@@ -100,7 +108,6 @@
{
try
{
- _unitOfWorkManage.BeginTran();
if (order.order_type == "1") //姝e父鍏ュ簱
{
name = "鍒涘缓姝e父鍏ュ簱鍗�";
@@ -145,14 +152,12 @@
var content = _cabinOrderServices.CreateCheckInOrder(order);
if (!content.Status) throw new Exception(content.Message);
}
- _unitOfWorkManage.CommitTran();
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
_messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus);
- SendErrorToUpstream(1, "", ex.Message, "");
- return responseContent.Error("鍚屾澶辫触: " + ex.Message);
+ //SendErrorToUpstream(1, "", ex.Message, "");
+ //return responseContent.Error("鍚屾澶辫触: " + ex.Message);
}
};
return responseContent.OK("鍚屾鍏ュ簱鍗曟垚鍔�");
@@ -161,21 +166,21 @@
catch (Exception ex)
{
// 鍏ㄥ眬寮傚父鏃讹紝涔熸帹閫佸紓甯哥粰涓婃父
- SendErrorToUpstream(1, "", ex.Message, "");
+ //SendErrorToUpstream(1, "", ex.Message, "");
return responseContent.Error("鍚屾澶辫触: " + ex.Message);
}
}
#endregion
#region 鑾峰彇ERP鍑哄簱鍗�
- static string SearchOutDate = "2025-09-10 00:00:00";
+ static string SearchOutDate = "2025-10-30 00:00:00";
public WebResponseContent GetUpstreamOutOrder()
{
var responseContent = new WebResponseContent();
try
{
- //var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder";
- var url = "http://127.0.0.1:4523/m1/5660322-5340849-default/GYZ2/95fck/outOrder";
+ var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder";
+ //var url = "http://127.0.0.1:4523/m1/5660322-5340849-default/GYZ2/95fck/outOrder";
if (string.IsNullOrEmpty(SearchOutDate)) SearchOutDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//// 璇锋眰鍙傛暟
var requestData = new
@@ -183,24 +188,25 @@
searchDate = SearchOutDate
//searchDate = "2022-10-10 20:45:16" // 姝g‘鐨勬牸寮�
};
- SearchOutDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
+ SearchOutDate = DateTime.Now.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")
+ if (response == null || response.resultCode != "0")
{
- SendErrorToUpstream(3, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
- return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
+ //SendErrorToUpstream(3, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
+ return responseContent.Error(response?.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
}
if (response.data == null || !response.data.Any())
{
return responseContent.OK("鏃犳柊鍑哄簱鍗曟暟鎹�");
}
-
+ var ordernos = response.data.Select(x => x.order_no).ToList();
// 宸插瓨鍦ㄥ嚭搴撳崟鍙�
- var existingOutOrderNos = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>()
+ var existingOutOrderNos = _deliveryOrderServices.Db.CopyNew().Queryable<Dt_DeliveryOrder>()
+ .Where(x => ordernos.Contains(x.Out_no))
.Select(x => x.Out_no)
.Distinct().ToList();
@@ -211,7 +217,7 @@
List<string> order_no = newOutOrders.Select(x => x.order_no).ToList();
- if (!newOutOrders.Any())
+ if (newOutOrders.Count < 1)
{
return responseContent.OK("鎵�鏈夊嚭搴撳崟宸插瓨鍦紝鏃犻渶鏂板");
}
@@ -225,7 +231,6 @@
{
try
{
- _unitOfWorkManage.BeginTran();
if (outorder.order_type == "1") // 姝e父鍑哄簱鍗�
{
name = "鍒涘缓姝e父鍑哄簱鍗�";
@@ -262,7 +267,7 @@
if (!responseContent.Status) throw new Exception(responseContent.Message);
List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>;
if (dt_CabinOrders != null && dt_CabinOrders.Count > 0)
- _cabinOrderServices.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand();
+ _cabinOrderServices.Db.CopyNew().InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand();
#endregion
}
else if (outorder.order_type == "6")//鎶ユ崯鍑哄簱
@@ -272,21 +277,19 @@
var content = _deliveryOrderServices.CreateCheckOutOrder(outorder);
if (!content.Status) throw new Exception(content.Message);
}
- _unitOfWorkManage.CommitTran();
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
_messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus);
- SendErrorToUpstream(3, "", ex.Message, "");
- return responseContent.Error("鍚屾澶辫触: " + ex.Message);
+ //SendErrorToUpstream(3, "", ex.Message, "");
+ //return responseContent.Error("鍚屾澶辫触: " + ex.Message);
}
}
return responseContent.OK($"鍚屾鍑哄簱鍗曟垚鍔燂紝鍏眥_DeliveryOrders.Count}鏉�");
}
catch (Exception ex)
{
- SendErrorToUpstream(3, "", ex.Message, "");
+ //SendErrorToUpstream(3, "", ex.Message, "");
return responseContent.Error("鍚屾澶辫触: " + ex.Message);
}
}
@@ -297,44 +300,23 @@
{
try
{
- //2.鏌ヨ绗﹀悎鏉′欢鐨勮鍗曪紙琛ㄥご = 鏂板缓 && 鍖呭惈鏈夋晥鏄庣粏锛�
- //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>()
- // .Where(o => o.OdrderStatus == "鏂板缓")
- // .Includes(o => o.Details, d => d.MedicineGoods)
- // .ToList();
- //鏌ュ嚭鍖呭惈鍏ㄩ儴鐨勫叆搴撳崟锛屽寘鍚叏閮ㄦ槑缁�+涓�涓槑缁嗗搴斾竴涓晢鍝�
var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
- var orders = _cabinOrderServices.Db.CopyNew()
- .Queryable<Dt_CabinOrder>()
- .Where(o => o.OdrderStatus == "鏂板缓" && o.Warehouse_no == reslut)
- .Includes(o => o.Details, d => d.MedicineGoods)
- .ToList();
- // 3. 鍐嶈繃婊ゆ帀涓嶇鍚堟潯浠剁殑鏄庣粏锛堝彧淇濈暀 Status=0锛�
+ var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "鏂板缓" && x.Warehouse_no == reslut);
+ if (orders.Count < 1) return WebResponseContent.Instance.OK();
+ string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
+ var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.OrderId));
+ var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode));
foreach (var order in orders)
{
- Console.WriteLine($"璁㈠崟 {order.Order_no} 鍘熸槑缁嗘暟锛歿order.Details.Count}");
- order.Details = order.Details.Where(d => d.Status == 0).ToList();
- Console.WriteLine($"璁㈠崟 {order.Order_no} 杩囨护鍚庢槑缁嗘暟锛歿order.Details.Count}");
- }
-
-
- if (orders == null || !orders.Any())
- {
- Console.WriteLine("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
- return WebResponseContent.Instance.Error("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
- }
-
- // 4. 閬嶅巻璁㈠崟锛岀粍瑁� DTO 骞舵帹閫�
- foreach (var order in orders)
- {
- // 浠庣涓�涓湁 MedicineGoods 鐨勬槑缁嗕腑鍙栧嚭 MaterielErpType
- string materialCode = order.Details
- .Select(d => d.MedicineGoods?.MaterielErpType)
- .FirstOrDefault(x => !string.IsNullOrEmpty(x)) ?? "YY"; // 榛樿鍊糦Y
-
+ order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList();
+ foreach (var item in order.Details)
+ {
+ item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
+ }
+ #region 涓嬪彂WCS
+ string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
var ediDto = new ToediInInfo
{
-
//瀹㈡埛浠g爜
customerCode = "905",
//鐗╂枡绫诲瀷
@@ -354,61 +336,244 @@
//浜у搧
productCode = d.Goods_no,
//sku鍚嶇О
- productName = d.MedicineGoods?.MaterielName,
+ productName = d.MedicineGoods.MaterielName,
//sku瑙勬牸
- productSpecifications = d.MedicineGoods?.MaterielSpec,
+ productSpecifications = d.MedicineGoods.MaterielSpec,
//鏁伴噺
quantity = (int)d.Order_qty,
//鏁堟湡
validityPeriod = d.Exp_date,
//鐢熶骇鍘傚
- manufacturer = d.MedicineGoods?.Factory,
+ manufacturer = d.MedicineGoods.Factory,
//鎴垮彿
libraryNo = order.Warehouse_no,
}).ToList()
};
-
- var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
- //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363019549";
var result = HttpHelper.Post(url, ediDto.ToJsonString());
var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
-
if (resp != null && resp.code == "0")
{
- // 鏇存柊琛ㄥご鐘舵��
- _cabinOrderServices.Db.Updateable<Dt_CabinOrder>()
- .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "寮�濮�" })
- .Where(o => o.Id == order.Id)
- .ExecuteCommand();
-
- // 鏇存柊鏄庣粏鐘舵�佷负宸插悓姝� //杩欓噷瑕佹槸灏嗘柊寤�--銆嬪紑濮嬬姸鎬�,鍦ㄥ悗绔帴鍙h繑鍥炴垜浠殑鏃跺�欏湪杩斿洖宸插畬鎴�
- _cabinDetailServices.Db.Updateable<Dt_CabinOrderDetail>()
- .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "寮�濮�" })
- .Where(d => d.OrderId == order.Id && d.Status == 0)
- .ExecuteCommand();
-
- Console.WriteLine($"璁㈠崟 {order.Order_no} 鎺ㄩ�佹垚鍔�");
+ order.OdrderStatus = "寮�濮�";
+ foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id))
+ {
+ item.Status = 1;
+ item.OrderDetailStatus = "寮�濮�";
+ }
}
- else
- {
- SendErrorToUpstream(3, order.Order_no, resp?.msg ?? "WCS 鎺ㄩ�佸け璐�", "");
- Console.WriteLine($"璁㈠崟 {order.Order_no} 鎺ㄩ�佸け璐ワ細{resp?.msg}");
- return new WebResponseContent { Status = false, Message = "璁㈠崟鎺ㄩ�佸け璐�" };
- }
+ #endregion
}
- return new WebResponseContent { Status = true, Message = "鎺ㄩ�佹垚鍔�" };
+ _cabinOrderServices.UpdateData(orders);
+ _cabinDetailServices.UpdateData(cabinOrderDetails);
+ return WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
-
- Console.WriteLine("EdiIn 寮傚父锛�" + ex.Message);
- return new WebResponseContent { Status = false, Message = ex.Message };
+ Console.WriteLine("涓嬪彂WCS鍏ュ簱鍗曞紓甯革細" + ex.Message);
+ return WebResponseContent.Instance.Error(ex.Message);
}
}
+ #region MyRegion
+
+ //public WebResponseContent EdiIn1()
+ //{
+ // try
+ // {
+ // //2.鏌ヨ绗﹀悎鏉′欢鐨勮鍗曪紙琛ㄥご = 鏂板缓 && 鍖呭惈鏈夋晥鏄庣粏锛�
+ // //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>()
+ // // .Where(o => o.OdrderStatus == "鏂板缓")
+ // // .Includes(o => o.Details, d => d.MedicineGoods)
+ // // .ToList();
+ // //鏌ュ嚭鍖呭惈鍏ㄩ儴鐨勫叆搴撳崟锛屽寘鍚叏閮ㄦ槑缁�+涓�涓槑缁嗗搴斾竴涓晢鍝�
+ // var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
+ // var orders = _cabinOrderServices.Db.CopyNew()
+ // .Queryable<Dt_CabinOrder>()
+ // .Where(o => o.OdrderStatus == "鏂板缓" && o.Warehouse_no == reslut)
+ // .Includes(o => o.Details, d => d.MedicineGoods)
+ // .ToList();
+ // // 3. 鍐嶈繃婊ゆ帀涓嶇鍚堟潯浠剁殑鏄庣粏锛堝彧淇濈暀 Status=0锛�
+ // foreach (var order in orders)
+ // {
+ // //Console.WriteLine($"璁㈠崟 {order.Order_no} 鍘熸槑缁嗘暟锛歿order.Details.Count}");
+ // order.Details = order.Details.Where(d => d.Status == 0).ToList();
+ // //Console.WriteLine($"璁㈠崟 {order.Order_no} 杩囨护鍚庢槑缁嗘暟锛歿order.Details.Count}");
+ // }
+
+
+ // if (orders.Count < 1)
+ // {
+ // //Console.WriteLine("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
+ // return WebResponseContent.Instance.Error("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
+ // }
+ // List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>();
+ // var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
+ // // 4. 閬嶅巻璁㈠崟锛岀粍瑁� DTO 骞舵帹閫�
+ // foreach (var order in orders)
+ // {
+ // // 浠庣涓�涓湁 MedicineGoods 鐨勬槑缁嗕腑鍙栧嚭 MaterielErpType
+ // string materialCode = order.Details
+ // .Select(d => d.MedicineGoods?.MaterielErpType)
+ // .FirstOrDefault(x => !string.IsNullOrEmpty(x)) ?? "YY"; // 榛樿鍊糦Y
+
+ // var ediDto = new ToediInInfo
+ // {
+
+ // //瀹㈡埛浠g爜
+ // customerCode = "905",
+ // //鐗╂枡绫诲瀷
+ // materialCode = materialCode,
+ // //鍏ュ簱鍗曞彿
+ // externalOrderNo = order.Order_no,
+ // //鍏ュ簱鍗曠被鍨�
+ // inOrderType = order.Order_type == "5" ? "20" : "10",
+ // //浼樺厛绾�
+ // priority = 0,
+ // //鏄惁鍙栨秷
+ // Is_cancel = 0,
+ // details = order.Details.Select(d => new ToediInDetail
+ // {
+ // //鎵瑰彿
+ // batchNo = d.Batch_num,
+ // //浜у搧
+ // productCode = d.Goods_no,
+ // //sku鍚嶇О
+ // productName = d.MedicineGoods?.MaterielName,
+ // //sku瑙勬牸
+ // productSpecifications = d.MedicineGoods?.MaterielSpec,
+ // //鏁伴噺
+ // quantity = (int)d.Order_qty,
+ // //鏁堟湡
+ // validityPeriod = d.Exp_date,
+ // //鐢熶骇鍘傚
+ // manufacturer = d.MedicineGoods?.Factory,
+ // //鎴垮彿
+ // libraryNo = order.Warehouse_no,
+ // }).ToList()
+ // };
+
+ // //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363019549";
+ // var result = HttpHelper.Post(url, ediDto.ToJsonString());
+ // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
+
+ // if (resp != null && resp.code == "0")
+ // {
+ // order.OdrderStatus = "寮�濮�";
+ // foreach (var item in order.Details)
+ // {
+ // item.Status = 1;
+ // item.OrderDetailStatus = "寮�濮�";
+ // }
+ // cabinOrderDetails.AddRange(order.Details);
+ // // 鏇存柊琛ㄥご鐘舵��
+ // //_cabinOrderServices.Db.Updateable<Dt_CabinOrder>()
+ // // .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "寮�濮�" })
+ // // .Where(o => o.Id == order.Id)
+ // // .ExecuteCommand();
+
+ // // 鏇存柊鏄庣粏鐘舵�佷负宸插悓姝� //杩欓噷瑕佹槸灏嗘柊寤�--銆嬪紑濮嬬姸鎬�,鍦ㄥ悗绔帴鍙h繑鍥炴垜浠殑鏃跺�欏湪杩斿洖宸插畬鎴�
+ // //_cabinDetailServices.Db.Updateable<Dt_CabinOrderDetail>()
+ // // .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "寮�濮�" })
+ // // .Where(d => d.OrderId == order.Id && d.Status == 0)
+ // // .ExecuteCommand();
+
+ // //Console.WriteLine($"璁㈠崟 {order.Order_no} 鎺ㄩ�佹垚鍔�");
+ // }
+ // else
+ // {
+ // continue;
+ // //SendErrorToUpstream(3, order.Order_no, resp?.msg ?? "WCS 鎺ㄩ�佸け璐�", "");
+ // //Console.WriteLine($"璁㈠崟 {order.Order_no} 鎺ㄩ�佸け璐ワ細{resp?.msg}");
+ // //return new WebResponseContent { Status = false, Message = "璁㈠崟鎺ㄩ�佸け璐�" };
+ // }
+ // }
+ // _cabinOrderServices.UpdateData(orders);
+ // _cabinDetailServices.UpdateData(cabinOrderDetails);
+ // return new WebResponseContent { Status = true, Message = "鎺ㄩ�佹垚鍔�" };
+ // }
+ // catch (Exception ex)
+ // {
+
+ // Console.WriteLine("EdiIn 寮傚父锛�" + ex.Message);
+ // return new WebResponseContent { Status = false, Message = ex.Message };
+ // }
+ //}
+ #endregion
#endregion
#region 涓嬪彂绔嬪簱鍑哄簱鍗�
public WebResponseContent EdiOut()
+ {
+ try
+ {
+ var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
+ var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "鏂板缓" && x.Warehouse_no == reslut);
+ if (orders.Count < 1) return WebResponseContent.Instance.OK();
+ string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
+ var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId));
+ var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode));
+ foreach (var order in orders)
+ {
+ order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList();
+ foreach (var item in order.Details)
+ {
+ item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
+ }
+ #region 涓嬪彂WCS
+ string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
+ var ediDto = new ToediOutInfo
+ {
+ //瀹㈡埛浠g爜
+ customerCode = "905",
+ //鐗╂枡绫诲瀷
+ materialCode = materialCode,
+ externalOrderNo = order.Out_no,
+ outOrderType = order.Out_type,
+ priority = 1,
+ Is_cancel = 0,
+ details = order.Details.Select(d => new ToeOutdiInDetail
+ {
+ batchNo = d.Batch_num,
+ productCode = d.Goods_no,
+ productName = d.MedicineGoods.MaterielName,
+ productSpecifications = d.MedicineGoods.MaterielModel,
+ quantity = (int)d.Order_qty,
+ }).ToList()
+ };
+ switch (order.Out_type)
+ {
+ case "1"://姝e父鍑哄簱
+ case "3"://鍏ュ簱閫�璐�
+ ediDto.outOrderType = "10";//涓�鑸氦鏄撳嚭搴撳崟
+ break;
+ case "6"://鐩樹簭鍑哄簱
+ ediDto.outOrderType = "30";//鐩樹簭鍑哄簱鍗�
+ break;
+ }
+ var result = HttpHelper.Post(url, ediDto.ToJsonString());
+ var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
+ if (resp != null && resp.code == "0")
+ {
+ order.OutStatus = "寮�濮�";
+ foreach (var item in deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id))
+ {
+ item.Status = 1;
+ item.OotDetailStatus = "寮�濮�";
+ }
+ }
+ #endregion
+ }
+ _deliveryOrderServices.UpdateData(orders);
+ _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("涓嬪彂WCS鍑哄簱鍗曞紓甯革細" + ex.Message);
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
+ #region MyRegion
+ public WebResponseContent EdiOut1()
{
var responseContent = new WebResponseContent();
var WarehouseLk = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
@@ -426,12 +591,13 @@
order.Details = order.Details.Where(d => d.Status == 0).ToList();
}
- if (outOrders == null || !outOrders.Any())
+ if (outOrders.Count < 1)
{
- Console.WriteLine("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
+ //Console.WriteLine("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
return responseContent.Error("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
}
-
+ List<Dt_DeliveryOrderDetail> deliveryOrderDetails = new List<Dt_DeliveryOrderDetail>();
+ var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
foreach (var order in outOrders)
{
try
@@ -480,49 +646,58 @@
};
// 4. 璋冪敤鎺ュ彛
- //var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
- var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363076920";
+ //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363076920";
var result = HttpHelper.Post(url, ediDto.ToJsonString());
var resp = JsonConvert.DeserializeObject<TowcsDto.TowcsResponse<object>>(result);
if (resp != null && resp.code == "0")
{
+ order.OutStatus = "寮�濮�";
+ foreach (var item in order.Details)
+ {
+ item.Status = 1;
+ item.OotDetailStatus = "寮�濮�";
+ }
+ deliveryOrderDetails.AddRange(order.Details);
// 鏇存柊琛ㄥご鐘舵��
- _cabinDetailServices.Db.Updateable<Dt_DeliveryOrder>()
- .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "寮�濮�" })
- .Where(o => o.Id == order.Id)
- .ExecuteCommand();
+ //_cabinDetailServices.Db.CopyNew().Updateable<Dt_DeliveryOrder>()
+ // .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "寮�濮�" })
+ // .Where(o => o.Id == order.Id)
+ // .ExecuteCommand();
// 鏇存柊鏄庣粏鐘舵��
- _deliveryOrderDetailServices.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} 鎺ㄩ�佹垚鍔�");
+ //_deliveryOrderDetailServices.Db.CopyNew().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}");
+ continue;
+ //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}");
+ //SendErrorToUpstream(3, order.Out_no, ex.Message, "");
+ //Console.WriteLine($"璁㈠崟 {order.Out_no} 鎺ㄩ�佸紓甯革細{ex.Message}");
}
}
-
+ _deliveryOrderServices.UpdateData(outOrders);
+ _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
return responseContent.OK("鍑哄簱璁㈠崟鎺ㄩ�佸畬鎴�");
}
catch (Exception ex)
{
- Console.WriteLine("EdiOut 寮傚父锛�" + ex.Message);
+ //Console.WriteLine("EdiOut 寮傚父锛�" + ex.Message);
return responseContent.Error("鍑哄簱璁㈠崟鎺ㄩ�佸け璐ワ細" + ex.Message);
}
}
+ #endregion
#endregion
#region 鍏ュ簱瀹屾垚涓婃姤ERP
@@ -538,42 +713,54 @@
{
#region 鏌ユ壘鎵�鏈夊凡瀹屾垚鍏ュ簱鍗�
var inorders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "宸插畬鎴�").Select(x => x.Order_no).Distinct().ToList();
- foreach (var inorder in inorders)
+ var Orders = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => inorders.Contains(x.Order_no)).Includes(x => x.Details).ToList();
+ List<Dt_CabinOrder> cabinOrders = new List<Dt_CabinOrder>();
+ List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>();
+ var url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk";
+ foreach (var item in Orders.GroupBy(x => x.Order_no))
{
- //var Orders = BaseDal.QueryData(x => x.Order_no == inorder);
- var Orders = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == inorder).Includes(x => x.Details).ToList();
- if (!Orders.Where(x => x.OdrderStatus != "宸插畬鎴�").Any())
+ if (!item.Where(x => x.OdrderStatus != "宸插畬鎴�").Any())
{
- _unitOfWorkManage.BeginTran();
- foreach (var item in Orders)
+ if (item.First().Order_type == InOrderTypeEnum.Allocat.ObjToInt().ToString())
{
- if (item.Details != null)
- _cabinDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.鑷姩瀹屾垚);
- item.Details = null;
- }
- _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.鑷姩瀹屾垚);
- // 璋冪敤涓婃父鎺ュ彛
- var url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk";
- var result = HttpHelper.Post(url, new { order_no = inorder }.ToJsonString());
- var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
- if (response.resultCode == "0")
- {
- // 鎻愪氦浜嬪姟
- _unitOfWorkManage.CommitTran();
+ foreach (var a in item)
+ {
+ if (a.Details != null) cabinOrderDetails.AddRange(a.Details);
+ a.Details = null;
+ cabinOrders.Add(a);
+ }
}
else
{
- _unitOfWorkManage.RollbackTran();
- SendErrorToUpstream(2, "", $"涓婃父鎺ュ彛杩斿洖澶辫触: {response.resultMsg}", inorder);
+ if (item.First().Order_type == "2") url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";//鍑哄簱閫�璐�
+ var result = HttpHelper.Post(url, new { order_no = item.Key }.ToJsonString());
+ var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
+ if (response != null && response.resultCode == "0")
+ {
+ foreach (var a in item)
+ {
+ if (a.Details != null) cabinOrderDetails.AddRange(a.Details);
+ a.Details = null;
+ cabinOrders.Add(a);
+ }
+ }
+ else
+ {
+ string mess = "涓婃姤ERP鏃犲搷搴�";
+ if (response != null) mess = response.resultMsg;
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, $"鍏ュ簱鍗曞彿銆恵item.Key}銆戝畬鎴愪笂鎶RP澶辫触", mess);
+ continue;
+ }
}
}
}
+ _cabinDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetails, OperateTypeEnum.鑷姩瀹屾垚);
+ _cabinOrderServices.Repository.DeleteAndMoveIntoHty(cabinOrders, OperateTypeEnum.鑷姩瀹屾垚);
#endregion
return responseContent.OK();
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
return responseContent.Error("鎵归噺澶勭悊澶辫触锛�" + ex.Message);
}
}
@@ -592,41 +779,55 @@
{
#region 鏌ユ壘鎵�鏈夊凡瀹屾垚鍑哄簱鍗�
var outorders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "宸插畬鎴�").Select(x => x.Out_no).Distinct().ToList();
- foreach (var outorder in outorders)
+ var Orders = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => outorders.Contains(x.Out_no)).Includes(x => x.Details).ToList();
+ List<Dt_DeliveryOrder> cabinOrders = new List<Dt_DeliveryOrder>();
+ List<Dt_DeliveryOrderDetail> cabinOrderDetails = new List<Dt_DeliveryOrderDetail>();
+ var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
+ foreach (var item in Orders.GroupBy(x => x.Out_no))
{
- var Orders = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == outorder).Includes(x => x.Details).ToList();
- if (!Orders.Where(x => x.OutStatus != "宸插畬鎴�").Any())
+ if (!item.Where(x => x.OutStatus != "宸插畬鎴�").Any())
{
- _unitOfWorkManage.BeginTran();
- foreach (var item in Orders)
+ if (item.First().Out_type == OutOrderTypeEnum.Allocate.ObjToInt().ToString())
{
- if (item.Details != null)
- _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.鑷姩瀹屾垚);
- item.Details = null;
+ foreach (var a in item)
+ {
+ if (a.Details != null) cabinOrderDetails.AddRange(a.Details);
+ a.Details = null;
+ cabinOrders.Add(a);
+ }
}
- _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.鑷姩瀹屾垚);
- var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
- var requestDate = new
- {
- order_no = outorder
- };
- var result = HttpHelper.Post(url, requestDate.ToJsonString());
- var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
- if (response.resultCode == "0") _unitOfWorkManage.CommitTran();
else
{
- _unitOfWorkManage.RollbackTran();
- SendErrorToUpstream(4, "", $"涓婃父鎺ュ彛杩斿洖澶辫触: {response.resultMsg}", outorder);
+ if (item.First().Out_type == "3") url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk";//鍏ュ簱閫�璐�
+ var result = HttpHelper.Post(url, new { order_no = item.Key }.ToJsonString());
+ var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
+ if (response != null && response.resultCode == "0")
+ {
+ foreach (var a in item)
+ {
+ if (a.Details != null) cabinOrderDetails.AddRange(a.Details);
+ a.Details = null;
+ cabinOrders.Add(a);
+ }
+ }
+ else
+ {
+ string mess = "涓婃姤ERP鏃犲搷搴�";
+ if (response != null) mess = response.resultMsg;
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, $"鍑哄簱鍗曞彿銆恵item.Key}銆戝畬鎴愪笂鎶RP澶辫触", mess);
+ continue;
+ }
}
}
}
- #endregion
+ _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetails, OperateTypeEnum.鑷姩瀹屾垚);
+ _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(cabinOrders, OperateTypeEnum.鑷姩瀹屾垚);
+ #endregion
return responseContent.OK();
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
return responseContent.Error("鎵归噺澶勭悊澶辫触锛�" + ex.Message);
}
}
--
Gitblit v1.9.3