From b790305873e20a7f26d63c71623210964105014e Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 12 十一月 2025 18:45:08 +0800
Subject: [PATCH] 优化
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs | 285 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 238 insertions(+), 47 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 fa7bf08..7e6d4d5 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"
@@ -19,6 +19,7 @@
using static WIDESEA_DTO.SquareCabin.AlarmDto;
using OfficeOpenXml.Style;
using System.Security.Policy;
+using SqlSugar;
namespace WIDESEA_SquareCabinServices
{
@@ -43,6 +44,164 @@
}
#region 涓嬪彂绔嬪簱鍏ュ簱鍗�
+ //public WebResponseContent EdiIn()
+ //{
+ // try
+ // {
+ // 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 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)
+ // {
+ // 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",
+ // //鐗╂枡绫诲瀷
+ // 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 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 cabinOrderDetails.Where(x => x.OrderId == order.Id))
+ // {
+ // item.Status = 1;
+ // item.OrderDetailStatus = "寮�濮�";
+ // }
+ // }
+ // #endregion
+ // }
+ // _cabinOrderServices.UpdateData(orders);
+ // _cabinDetailServices.UpdateData(cabinOrderDetails);
+ // return WebResponseContent.Instance.OK();
+ // }
+ // catch (Exception ex)
+ // {
+ // Console.WriteLine("涓嬪彂WCS鍏ュ簱鍗曞紓甯革細" + ex.Message);
+ // return WebResponseContent.Instance.Error(ex.Message);
+ // }
+ //}
+ #endregion
+
+ #region 涓嬪彂绔嬪簱鍑哄簱鍗�
+ //public WebResponseContent EdiOut()
+ //{
+ // try
+ // {
+ // 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 deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)).ToList();
+ // var materielInfos = _materielInfoService.Repository.QueryData(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();
+ // 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);
+ // }
+ //}
+ #endregion
+
+
+
+
+
+ // 浣跨敤 SqlSugar 鐨� Ado.Connection 鎵嬪姩绠$悊
+ #region 涓嬪彂绔嬪簱鍏ュ簱鍗�
public WebResponseContent EdiIn()
{
try
@@ -50,58 +209,64 @@
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 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();
+ 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)
{
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();
- }
+
+ // 鍏抽敭淇敼锛氫笉璁剧疆瀵艰埅灞炴�э紝閬垮厤瑙﹀彂寤惰繜鍔犺浇
+ // 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";
+ // 鐩存帴浠� 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 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
+ details = order.Details.Select(d =>
{
- //鎵瑰彿
- 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,
+ var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no);
+ return new ToediInDetail
+ {
+ batchNo = d.Batch_num,
+ productCode = d.Goods_no,
+ productName = medicine?.MaterielName ?? string.Empty,
+ productSpecifications = medicine?.MaterielSpec ?? string.Empty,
+ quantity = (int)d.Order_qty,
+ validityPeriod = d.Exp_date,
+ manufacturer = medicine?.Factory ?? string.Empty,
+ 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 cabinOrderDetails.Where(x => x.OrderId == order.Id))
+ foreach (var item in order.Details)
{
item.Status = 1;
item.OrderDetailStatus = "寮�濮�";
@@ -109,6 +274,7 @@
}
#endregion
}
+
_cabinOrderServices.UpdateData(orders);
_cabinDetailServices.UpdateData(cabinOrderDetails);
return WebResponseContent.Instance.OK();
@@ -119,6 +285,7 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
+
#endregion
#region 涓嬪彂绔嬪簱鍑哄簱鍗�
@@ -129,37 +296,55 @@
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 deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)).ToList();
- var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
+ 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)
{
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();
- }
+
+ // 鍏抽敭淇敼锛氫笉璁剧疆瀵艰埅灞炴�э紝閬垮厤瑙﹀彂寤惰繜鍔犺浇
+ // 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";
+ // 鐩存帴浠� 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
{
- //瀹㈡埛浠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
+ details = order.Details.Select(d =>
{
- batchNo = d.Batch_num,
- productCode = d.Goods_no,
- productName = d.MedicineGoods.MaterielName,
- productSpecifications = d.MedicineGoods.MaterielModel,
- quantity = (int)d.Order_qty,
+ var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no);
+ return new ToeOutdiInDetail
+ {
+ batchNo = d.Batch_num,
+ productCode = d.Goods_no,
+ productName = medicine.MaterielName,
+ productSpecifications = medicine.MaterielModel,
+ quantity = (int)d.Order_qty,
+ };
}).ToList()
};
+
switch (order.Out_type)
{
case "1"://姝e父鍑哄簱
@@ -170,12 +355,13 @@
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))
+ foreach (var item in order.Details)
{
item.Status = 1;
item.OotDetailStatus = "寮�濮�";
@@ -183,6 +369,7 @@
}
#endregion
}
+
_deliveryOrderServices.UpdateData(orders);
_deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
return WebResponseContent.Instance.OK();
@@ -195,6 +382,10 @@
}
#endregion
+
+
+
+
#region 鍏ュ簱瀹屾垚涓婃姤ERP
/// <summary>
/// 鍏ュ簱鎶ュ畬鎴愭帴鍙�
--
Gitblit v1.9.3