From 7ec2fdc761acd483a621c590fae3a60af7b464ba Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期二, 04 十一月 2025 15:17:08 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs | 667 +++++++++++++-----------------------------------------
1 files changed, 165 insertions(+), 502 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 b534138..8fa2694 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"
@@ -13,336 +13,57 @@
using static WIDESEA_DTO.SquareCabin.TowcsDto;
using WIDESEA_Common.WareHouseEnum;
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 IBasicService _basicService;
+ private readonly IMaterielInfoService _materielInfoService;
+ private readonly IMessageInfoService _messageInfoService;
private readonly IUnitOfWorkManage _unitOfWorkManage;
- private readonly IInventory_BatchServices _inventory_BatchServices;
- private readonly IInventoryInfoService _inventoryInfoService;
- private readonly ISupplyTaskService _supplyTaskService;
- private readonly ITacticsService _tacticsService;
- public Business(IDeliveryOrderServices deliveryOrderServices, IBasicService basicService, IUnitOfWorkManage unitOfWorkManage, IInventory_BatchServices inventory_BatchServices, IInventoryInfoService inventoryInfoService, IDeliveryOrderDetailServices deliveryOrderDetailServices, ISupplyTaskService supplyTaskService, ICabinOrderServices cabinOrderServices, ITacticsService tacticsService, ICabinOrderDetailServices cabinDetailServices)
+ public Business(IDeliveryOrderServices deliveryOrderServices, IUnitOfWorkManage unitOfWorkManage, IDeliveryOrderDetailServices deliveryOrderDetailServices, ICabinOrderServices cabinOrderServices, ICabinOrderDetailServices cabinDetailServices, IMaterielInfoService materielInfoService, IMessageInfoService messageInfoService)
{
_deliveryOrderServices = deliveryOrderServices;
- _basicService = basicService;
_unitOfWorkManage = unitOfWorkManage;
- _inventory_BatchServices = inventory_BatchServices;
- _inventoryInfoService = inventoryInfoService;
_deliveryOrderDetailServices = deliveryOrderDetailServices;
- _supplyTaskService = supplyTaskService;
_cabinOrderServices = cabinOrderServices;
- _tacticsService = tacticsService;
_cabinDetailServices = cabinDetailServices;
+ _materielInfoService = materielInfoService;
+ _messageInfoService = messageInfoService;
}
- #region 鑾峰彇ERP鍏ュ簱鍗�
- static string SearchInDate = "2025-09-10 00:00:00";
- /// <summary>
- /// 鑾峰彇涓婃父绯荤粺鐨勫叆搴撳崟
- /// </summary>
- /// <param name="SearchInDate"></param>
- /// <returns></returns>
- public WebResponseContent GetUpstreamOrder()
- {
- var responseContent = new WebResponseContent();
- try
- {
- // 璇锋眰鍦板潃
- var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder";
- //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363009261";
-
- if (string.IsNullOrEmpty(SearchInDate)) SearchInDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- //// 璇锋眰鍙傛暟
- var requestData = new
- {
- searchDate = SearchInDate
- //searchDate = "2022-10-10 20:45:16" // 姝g‘鐨勬牸寮�
- };
- SearchInDate = DateTime.Now.AddDays(-1).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")
- {
- // 璋冪敤寮傚父鎺ュ彛
- SendErrorToUpstream(1, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
- return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
- }
-
- if (response.data == null || !response.data.Any())
- {
- return responseContent.OK("鏃犳柊鍏ュ簱鍗曟暟鎹�");
- }
- // 鑾峰彇鎵�鏈夊凡瀛樺湪鐨勫叆搴撳崟鍙�
- var existingOrderNos = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>()
- .Select(x => x.Order_no)
- .Distinct().ToList();
-
- // 杩囨护鎺夊凡瀛樺湪鐨勫叆搴撳崟
- var newOrders = response.data
- .Where(order => !existingOrderNos.Contains(order.order_no))
- .ToList();
-
- if (!newOrders.Any())
- {
- return responseContent.OK("鎵�鏈夊叆搴撳崟宸插瓨鍦紝鏃犻渶鏂板");
- }
-
- //瀛樺偍鍏ュ簱鍗曞彿
- List<string> orderNos = new List<string>();
-
- foreach (var order in newOrders)
- {
- try
- {
- _unitOfWorkManage.BeginTran();
- if (order.order_type == "1") //姝e父鍏ュ簱
- {
- responseContent = _cabinOrderServices.CreateInboundOrder(order);
- if (!responseContent.Status) throw new Exception(responseContent.Message);
- List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>;
- if (dt_CabinOrders != null)
- _cabinOrderServices.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand();
- }
- 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);
- }
- var content = _deliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo);
- if (!content.Status) throw new Exception(content.Message);
- #endregion
- }
- else if (order.order_type == "5")//鎶ユ孩鍏ュ簱
- {
- var content = _cabinOrderServices.CreateCheckInOrder(order);
- if (!content.Status) throw new Exception(content.Message);
- }
- _unitOfWorkManage.CommitTran();
- }
- catch (Exception ex)
- {
- _unitOfWorkManage.RollbackTran();
- SendErrorToUpstream(1, "", ex.Message, "");
- return responseContent.Error("鍚屾澶辫触: " + ex.Message);
- }
- };
-
- //鍦ㄤ笅鍙戠粰wcs
- //EdiIn(); //鍙戠粰涓嬫父
- //濡傛灉杩欎釜鏂规硶鎴愬姛浜嗭紝閭d箞灏辫皟鐢–ompleteOrder鎺ュ彛锛岀劧鍚庢敼鍙�
- return responseContent.OK("鍚屾鍏ュ簱鍗曟垚鍔�");
-
- }
- catch (Exception ex)
- {
- // 鍏ㄥ眬寮傚父鏃讹紝涔熸帹閫佸紓甯哥粰涓婃父
- SendErrorToUpstream(1, "", ex.Message, "");
- return responseContent.Error("鍚屾澶辫触: " + ex.Message);
- }
- }
- #endregion
-
- #region 鑾峰彇ERP鍑哄簱鍗�
- static string SearchOutDate = "2025-09-10 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";
- if (string.IsNullOrEmpty(SearchOutDate)) SearchOutDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- //// 璇锋眰鍙傛暟
- var requestData = new
- {
- searchDate = SearchOutDate
- //searchDate = "2022-10-10 20:45:16" // 姝g‘鐨勬牸寮�
- };
- SearchOutDate = 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(3, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
- return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
- }
-
- if (response.data == null || !response.data.Any())
- {
- return responseContent.OK("鏃犳柊鍑哄簱鍗曟暟鎹�");
- }
-
- // 宸插瓨鍦ㄥ嚭搴撳崟鍙�
- var existingOutOrderNos = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>()
- .Select(x => x.Out_no)
- .Distinct().ToList();
-
- // 鏂板嚭搴撳崟
- var newOutOrders = response.data
- .Where(outorder => !existingOutOrderNos.Contains(outorder.order_no))
- .ToList();
-
- List<string> order_no = newOutOrders.Select(x => x.order_no).ToList();
-
- if (!newOutOrders.Any())
- {
- return responseContent.OK("鎵�鏈夊嚭搴撳崟宸插瓨鍦紝鏃犻渶鏂板");
- }
-
- _unitOfWorkManage.BeginTran();
- try
- {
- List<Dt_DeliveryOrder> _DeliveryOrders = new List<Dt_DeliveryOrder>();
- List<string> orderNos = new List<string>();
-
- foreach (var outorder in newOutOrders)
- {
- if (outorder.order_type == "1") // 姝e父鍑哄簱鍗�
- {
- var content = _deliveryOrderServices.CreateOutboundOrder(outorder);
- if (!content.Status) throw new Exception(content.Message);
- }
- else if (outorder.order_type == "2")//鍑哄簱閫�璐�
- {
- // 鍒涘缓鍑哄簱閫�璐у崟 - 杩欓噷闇�瑕佹牴鎹笟鍔¢�昏緫瀹炵幇
- // 鏆傛椂璺宠繃鎴栧疄鐜伴��璐ч�昏緫
- //continue;
- #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);
- }
- responseContent = _cabinOrderServices.CreateInboundOrder(order);
- 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();
- #endregion
- }
- else if (outorder.order_type == "6")//鎶ユ崯鍑哄簱
- {
- var content = _deliveryOrderServices.CreateCheckOutOrder(outorder);
- if (!content.Status) throw new Exception(content.Message);
- }
- }
-
- // 鎵归噺鎻掑叆鍑哄簱鍗曞拰鏄庣粏
- //if (_DeliveryOrders.Any())
- //{
- // BaseDal.Db.InsertNav(_DeliveryOrders).Include(x => x.Details).ExecuteCommand();
- //}
- //涓嬪彂鍑哄簱鍗曚换鍔$粰wcs
-
-
- _unitOfWorkManage.CommitTran();
- //var tex = CreateSupplyTask(order_no);
- //if (!tex)
- //{
- // return responseContent.Error("鍒涘缓渚涘簲浠诲姟澶辫触");
- //}
- return responseContent.OK($"鍚屾鍑哄簱鍗曟垚鍔燂紝鍏眥_DeliveryOrders.Count}鏉�");
- }
- catch (Exception ex)
- {
- _unitOfWorkManage.RollbackTran();
- SendErrorToUpstream(3, "", ex.Message, "");
- return responseContent.Error("鍚屾澶辫触: " + ex.Message);
- }
- }
- catch (Exception ex)
- {
- SendErrorToUpstream(3, "", ex.Message, "");
- return responseContent.Error("鍚屾澶辫触: " + ex.Message);
- }
- }
- #endregion
#region 涓嬪彂绔嬪簱鍏ュ簱鍗�
public WebResponseContent EdiIn()
{
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",
//鐗╂枡绫诲瀷
@@ -362,55 +83,40 @@
//浜у搧
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);
}
}
#endregion
@@ -418,117 +124,73 @@
#region 涓嬪彂绔嬪簱鍑哄簱鍗�
public WebResponseContent EdiOut()
{
- var responseContent = new WebResponseContent();
- var WarehouseLk = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
try
{
- // 1. 鏌ヨ绗﹀悎鏉′欢鐨勮鍗曪紙琛ㄥご=鏂板缓 && 鍖呭惈鏈夋晥鏄庣粏锛�
- var outOrders = _deliveryOrderServices.Db.CopyNew().Queryable<Dt_DeliveryOrder>()
- .Where(o => o.OutStatus == "鏂板缓" && o.Warehouse_no == WarehouseLk)
- .Includes(o => o.Details, d => d.MedicineGoods)
- .ToList();
-
- // 2. 鍐嶈繃婊ゆ帀涓嶇鍚堟潯浠剁殑鏄庣粏锛堝彧淇濈暀 Status=0 锛�
- foreach (var order in outOrders)
+ 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 = order.Details.Where(d => d.Status == 0).ToList();
- }
-
- if (outOrders == null || !outOrders.Any())
- {
- Console.WriteLine("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
- return responseContent.Error("娌℃湁绗﹀悎鏉′欢鐨勮鍗曢渶瑕佹帹閫�");
- }
-
- foreach (var order in outOrders)
- {
- try
+ order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList();
+ foreach (var item in order.Details)
{
- string materialCode = "YY";//榛樿鍊�
- //鑾峰彇褰撳墠璁㈠崟鐨勭涓�涓槑缁嗛」
- var firstDetail = order.Details.FirstOrDefault();
- if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterielErpType))
- {
- //濡傛灉鏉′欢婊¤冻锛屽皢鐗╂枡浠g爜璁剧疆涓虹涓�涓槑缁嗛」瀵瑰簲鐨勮嵂鍝佺墿鏂欎唬鐮�
- materialCode = firstDetail.MedicineGoods.MaterielErpType;
- }
- switch (order.Out_type)
- {
- case "1"://姝e父鍑哄簱
- case "3"://鍏ュ簱閫�璐�
- order.Out_type = "10";//涓�鑸氦鏄撳嚭搴撳崟
- break;
- case "6"://鐩樹簭鍑哄簱
- order.Out_type = "30";//鐩樹簭鍑哄簱鍗�
- break;
- }
- // 3. 缁勮 DTO
- var ediDto = new TowcsDto.ToediOutInfo
- {
- customerCode = "905",
- materialCode = materialCode,
- externalOrderNo = order.Out_no,
- outOrderType = order.Out_type,//20鏄洏鐐瑰嚭搴撳崟
- priority = 1,
- Is_cancel = 0,
- details = order.Details.Select(d => new TowcsDto.ToeOutdiInDetail
- {
- batchNo = d.Batch_num,
- productCode = d.Goods_no,
- productName = d.MedicineGoods?.MaterielName,
- productSpecifications = d.MedicineGoods?.MaterielModel,
- 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 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")
- {
- // 鏇存柊琛ㄥご鐘舵��
- _cabinDetailServices.Db.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} 鎺ㄩ�佹垚鍔�");
- }
- else
- {
- SendErrorToUpstream(3, order.Out_no, resp?.msg ?? "WCS 鎺ㄩ�佸け璐�", "");
- Console.WriteLine($"璁㈠崟 {order.Out_no} 鎺ㄩ�佸け璐ワ細{resp?.msg}");
- }
- //鍒犻櫎鍏ㄩ儴鐘朵负宸插畬鎴愮殑鏄庣粏鍜岃〃澶达紝绉诲叆鍘嗗彶琛�
+ item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
}
- catch (Exception ex)
+ #region 涓嬪彂WCS
+ string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
+ var ediDto = new ToediOutInfo
{
- SendErrorToUpstream(3, order.Out_no, ex.Message, "");
- Console.WriteLine($"璁㈠崟 {order.Out_no} 鎺ㄩ�佸紓甯革細{ex.Message}");
+ //瀹㈡埛浠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
}
-
- return responseContent.OK("鍑哄簱璁㈠崟鎺ㄩ�佸畬鎴�");
+ _deliveryOrderServices.UpdateData(orders);
+ _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
+ return WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
- Console.WriteLine("EdiOut 寮傚父锛�" + ex.Message);
- return responseContent.Error("鍑哄簱璁㈠崟鎺ㄩ�佸け璐ワ細" + ex.Message);
+ Console.WriteLine("涓嬪彂WCS鍑哄簱鍗曞紓甯革細" + ex.Message);
+ return WebResponseContent.Instance.Error(ex.Message);
}
}
#endregion
@@ -546,40 +208,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();
- _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.鑷姩瀹屾垚);
- foreach (var item in Orders)
+ if (item.First().Order_type == InOrderTypeEnum.Allocat.ObjToInt().ToString())
{
- _cabinDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, 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);
}
}
@@ -598,69 +274,56 @@
{
#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();
- _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.鑷姩瀹屾垚);
- foreach (var item in Orders)
+ if (item.First().Out_type == OutOrderTypeEnum.Allocate.ObjToInt().ToString())
{
- _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.鑷姩瀹屾垚);
+ foreach (var a in item)
+ {
+ if (a.Details != null) cabinOrderDetails.AddRange(a.Details);
+ a.Details = null;
+ cabinOrders.Add(a);
+ }
}
- 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);
- }
- }
- #endregion
-
- #region 鎺ㄩ�佸紓甯镐笂鎶RP
- /// <summary>
- /// 鎺ㄩ�佸紓甯镐俊鎭粰涓婃父绯荤粺1.鍏ュ簱鍗曟帴鍙o紱2.鍏ュ簱鍗曟姤瀹屾垚鎺ュ彛锛�3.鍑哄簱鍗曟帴鍙o紱4.鍑哄簱鎶ュ畬鎴愭帴鍙o紱5.鑽搧鍩虹淇℃伅鍚屾鎺ュ彛锛�6.渚涘簲鍟嗕俊鎭帴鍙o紱7.瀹㈡埛淇℃伅鎺ュ彛锛�8.搴撳瓨
- /// </summary>
- public void SendErrorToUpstream(int type, string code, string message, string remark)
- {
- try
- {
- var url = "http://121.37.118.63:80/GYZ2/95fck/lexceptionLogog";
-
- var requestData = new
- {
- type = type.ToString(),
- code = code,
- message = message,
- remark = remark
- };
-
- var result = HttpHelper.Post(url, requestData.ToJsonString());
- // 鍙互鍙嶅簭鍒楀寲妫�鏌� resultCode 鏄惁涓�0
- }
- catch (Exception e)
- {
- // 杩欓噷涓嶈鍐嶆姏寮傚父浜嗭紝閬垮厤姝诲惊鐜�
- Console.WriteLine("寮傚父鎺ュ彛鎺ㄩ�佸け璐ワ細" + e.Message);
}
}
#endregion
--
Gitblit v1.9.3