From 465a67a2e9e68c5395871338ae8223efaddc1fdc Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 13 十一月 2025 14:18:50 +0800
Subject: [PATCH] 优化下发wcs出入库单
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs | 286 +++++++++++++++++++++++++++++---------------------------
1 files changed, 147 insertions(+), 139 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 7e6d4d5..ff5dc1a 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"
@@ -51,7 +51,7 @@
// var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
// var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "鏂板缓" && x.Warehouse_no == reslut).ToList();
// if (orders.Count < 1) return WebResponseContent.Instance.OK();
- // string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
+ // //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)).ToList();
// var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
// foreach (var order in orders)
@@ -204,180 +204,188 @@
#region 涓嬪彂绔嬪簱鍏ュ簱鍗�
public WebResponseContent EdiIn()
{
- try
+ // 鍒涘缓鐙珛鐨� SqlSugarClient
+ using (var db = new SqlSugarClient(new ConnectionConfig
{
- var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
- var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "鏂板缓" && x.Warehouse_no == reslut).ToList();
- if (orders.Count < 1) return WebResponseContent.Instance.OK();
-
- string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
- var orderIds = orders.Select(x => x.Id).ToList();
-
- var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orderIds.Contains(x.OrderId)).ToList();
-
- var goodsCodes = cabinOrderDetails.Select(x => x.Goods_no).Distinct().ToList();
- var materielInfos = _materielInfoService.Repository.QueryData(x => goodsCodes.Contains(x.MaterielCode)).ToList();
-
- foreach (var order in orders)
+ ConnectionString = "Data Source=.;Initial Catalog=WIDESEA_WMSDBF_Z22;User ID=sa;Password=48PYX_h7KS@f;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ DbType = DbType.SqlServer,
+ IsAutoCloseConnection = true, // 鍏抽敭閰嶇疆锛岃嚜鍔ㄥ叧闂繛鎺�
+ MoreSettings = new ConnMoreSettings()
{
- order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList();
+ IsAutoRemoveDataCache = true
+ }
+ }))
+ {
+ try
+ {
+ var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
- // 鍏抽敭淇敼锛氫笉璁剧疆瀵艰埅灞炴�э紝閬垮厤瑙﹀彂寤惰繜鍔犺浇
- // foreach (var item in order.Details)
- // {
- // item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
- // }
+ // 浣跨敤鏂扮殑 db 瀹炰緥鎵ц鎵�鏈夋煡璇�
+ var orders = db.Queryable<Dt_CabinOrder>()
+ .Where(x => x.OdrderStatus == "鏂板缓" && x.Warehouse_no == reslut)
+ .ToList();
- #region 涓嬪彂WCS
- // 鐩存帴浠� materielInfos 鏌ヨ锛屼笉閫氳繃瀵艰埅灞炴��
- var firstDetail = order.Details.FirstOrDefault();
- var firstMedicine = firstDetail != null ?
- materielInfos.FirstOrDefault(x => x.MaterielCode == firstDetail.Goods_no) : null;
+ if (orders.Count < 1) return WebResponseContent.Instance.OK();
+ string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
+ var orderIds = orders.Select(x => x.Id).ToList();
- string materialCode = firstMedicine?.MaterielErpType ?? "YY";
- var ediDto = new ToediInInfo
+ var cabinOrderDetails = db.Queryable<Dt_CabinOrderDetail>()
+ .Where(x => orderIds.Contains(x.OrderId))
+ .ToList();
+
+
+ var goodsCodes = cabinOrderDetails.Select(x => x.Goods_no).Distinct().ToList();
+
+ var materielInfos = db.Queryable<Dt_MaterielInfo>()
+ .Where(x => goodsCodes.Contains(x.MaterielCode))
+ .ToList();
+
+
+ foreach (var order in orders)
{
- 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 =>
+ order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList();
+ foreach (var item in order.Details) //鎵嬪姩鍒涘缓涓庣墿鏂欒〃鐨勮繛鎺�
{
- var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no);
- return new ToediInDetail
+ 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
+ {
+ 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,
- productName = medicine?.MaterielName ?? string.Empty,
- productSpecifications = medicine?.MaterielSpec ?? string.Empty,
+ productName = d.MedicineGoods.MaterielName,
+ productSpecifications = d.MedicineGoods.MaterielSpec,
quantity = (int)d.Order_qty,
validityPeriod = d.Exp_date,
- manufacturer = medicine?.Factory ?? string.Empty,
+ manufacturer = d.MedicineGoods.Factory,
libraryNo = order.Warehouse_no,
- };
- }).ToList()
- };
-
- 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)
+ }).ToList()
+ };
+ var result = HttpHelper.Post(url, ediDto.ToJsonString());
+ var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
+ if (resp != null && resp.code == "0")
{
- item.Status = 1;
- item.OrderDetailStatus = "寮�濮�";
+ order.OdrderStatus = "寮�濮�";
+ foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id))
+ {
+ item.Status = 1;
+ item.OrderDetailStatus = "寮�濮�";
+ }
}
+ #endregion
}
- #endregion
+
+ // 浣跨敤鍚屼竴涓� db 瀹炰緥鎵ц鏇存柊
+ db.Updateable(orders).ExecuteCommand();
+ db.Updateable(cabinOrderDetails).ExecuteCommand();
+
+ return WebResponseContent.Instance.OK();
}
-
- _cabinOrderServices.UpdateData(orders);
- _cabinDetailServices.UpdateData(cabinOrderDetails);
- return WebResponseContent.Instance.OK();
- }
- catch (Exception ex)
- {
- Console.WriteLine("涓嬪彂WCS鍏ュ簱鍗曞紓甯革細" + ex.Message);
- return WebResponseContent.Instance.Error(ex.Message);
- }
+ catch (Exception ex)
+ {
+ Console.WriteLine("涓嬪彂WCS鍏ュ簱鍗曞紓甯革細" + ex.Message);
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ } // 杩欓噷浼氳嚜鍔ㄥ叧闂繛鎺ワ紝涓嶉渶瑕佹墜鍔ㄧ鐞�
}
-
#endregion
#region 涓嬪彂绔嬪簱鍑哄簱鍗�
public WebResponseContent EdiOut()
{
- try
+ using (var db = new SqlSugarClient(new ConnectionConfig
{
- var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
- var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "鏂板缓" && x.Warehouse_no == reslut).ToList();
- if (orders.Count < 1) return WebResponseContent.Instance.OK();
-
- string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
- var orderIds = orders.Select(x => x.Id).ToList();
-
- var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orderIds.Contains(x.DeliveryOrderId)).ToList();
-
- var goodsCodes = deliveryOrderDetails.Select(x => x.Goods_no).Distinct().ToList();
- var materielInfos = _materielInfoService.Repository.QueryData(x => goodsCodes.Contains(x.MaterielCode)).ToList();
-
- foreach (var order in orders)
+ ConnectionString = "Data Source=.;Initial Catalog=WIDESEA_WMSDBF_Z22;User ID=sa;Password=48PYX_h7KS@f;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ DbType = DbType.SqlServer,
+ IsAutoCloseConnection = true, // 鍏抽敭閰嶇疆锛岃嚜鍔ㄥ叧闂繛鎺�
+ MoreSettings = new ConnMoreSettings()
{
- 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
- // 鐩存帴浠� materielInfos 鏌ヨ锛屼笉閫氳繃瀵艰埅灞炴��
- var firstDetail = order.Details.FirstOrDefault();
- var firstMedicine = firstDetail != null ?
- materielInfos.FirstOrDefault(x => x.MaterielCode == firstDetail.Goods_no) : null;
-
- string materialCode = firstMedicine?.MaterielErpType ?? "YY";
-
- var ediDto = new ToediOutInfo
+ IsAutoRemoveDataCache = true
+ }
+ }))
+ {
+ try
+ {
+ var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
+ var orders = db.Queryable<Dt_DeliveryOrder>().Where(x => x.OutStatus == "鏂板缓" && x.Warehouse_no == reslut).ToList();
+ if (orders.Count < 1)
{
- customerCode = "905",
- materialCode = materialCode,
- externalOrderNo = order.Out_no,
- outOrderType = order.Out_type,
- priority = 1,
- Is_cancel = 0,
- details = order.Details.Select(d =>
+ return WebResponseContent.Instance.OK();
+ }
+ string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
+ var deliveryOrderDetails = db.Queryable<Dt_DeliveryOrderDetail>().Where(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)).ToList();
+ var materielInfos = db.Queryable<Dt_MaterielInfo>().Where(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
+ foreach (var order in orders)
+ {
+ order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList();
+ #region 涓嬪彂WCS
+ foreach (var item in order.Details) //鎵嬪姩鍒涘缓涓庣墿鏂欒〃鐨勮繛鎺�
{
- var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no);
- return new ToeOutdiInDetail
+ item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
+ }
+ 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 = medicine.MaterielName,
- productSpecifications = medicine.MaterielModel,
+ 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 order.Details)
+ }).ToList()
+ };
+ switch (order.Out_type)
{
- item.Status = 1;
- item.OotDetailStatus = "寮�濮�";
+ 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
}
- #endregion
- }
+ db.Updateable(orders).ExecuteCommand();
+ db.Updateable(deliveryOrderDetails).ExecuteCommand();
- _deliveryOrderServices.UpdateData(orders);
- _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
- return WebResponseContent.Instance.OK();
- }
- catch (Exception ex)
- {
- Console.WriteLine("涓嬪彂WCS鍑哄簱鍗曞紓甯革細" + ex.Message);
- return WebResponseContent.Instance.Error(ex.Message);
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("涓嬪彂WCS鍑哄簱鍗曞紓甯革細" + ex.Message);
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
}
}
#endregion
--
Gitblit v1.9.3