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/DeliveryOrderServices.cs | 14
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs | 16
新建文件夹/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs | 22 +
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs | 152 +++++----
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs | 3
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs | 285 +++++++++++++++---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs | 377 +++++++++++++++++++++++-
7 files changed, 718 insertions(+), 151 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs"
index 5817be8..7f82787 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs"
@@ -1,6 +1,7 @@
锘縰sing HslCommunication;
using Newtonsoft.Json;
using Quartz.Util;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -167,6 +168,13 @@
return "鏈煡";
}
+
+
+ /// <summary>
+ /// 鍙戠粰涓嬫父wcs鍚屾鑽搧淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ #region 鍚屾涓嬫父鐗╂枡鎺ュ彛
public WebResponseContent ProductSynchronous()
{
try
@@ -222,82 +230,84 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
- /// <summary>
- /// 鍙戠粰涓嬫父wcs鍚屾鑽搧淇℃伅
- /// </summary>
- /// <returns></returns>
- public WebResponseContent ProductSynchronous1()
- {
- try
- {
- //鎶婂皬浠舵湭涓嬪彂鐨勭殑淇℃伅鍜岀瑙勪负0锛屾渶浣庡簱瀛樹负0鐨勮繃婊ゆ帀
- //var list = BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x => x.GoodStatusState == "鏈笅鍙�" && x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart).ToList();
- var list = BaseDal.QueryData(x => x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart && x.BoxQty > 0 && x.MinQty > 0 && x.GoodStatusState == "鏈笅鍙�").ToList();
- if (list.Count < 1)
- {
- return new WebResponseContent().OK("鏃犳湭涓嬪彂鑽搧");
- }
- //鎵惧埌浜嗗氨灏嗘暣涓猯ist鍙戠粰涓嬫父绯荤粺
- foreach (var item in list)
- {
- var medicineDTO = new ProductInfo
- {
- //鐢ㄦ埛code
- customerCode = "905",
- //鐗╂枡绫诲瀷
- materialCode = item.MaterielErpType,
- //浜у搧缂栫爜
- productCode = item.MaterielCode,
- //浜у搧鍚�
- productName = item.MaterielName,
- //浜у搧鏉$爜
- productBarCode = item.Barcode,
+ #endregion
- //鑽墏
- medicine = item.Dosage_form,//杩欓噷瑕佽皟鐢ㄦ柟娉曪紝杞寲鏂规硶
- //瑙勬牸
- productSpecifications = item.MaterielSpec,
- //鍗曚綅
- unit = item.MaterielUnit,
- //闀�
- singleProductLongNum = (item.MaterielLength ?? 0).ToString(),
- //瀹�
- singleProductWideNum = (item.MaterielWide ?? 0).ToString(),
- //楂�
- singleProductHighNum = (item.MaterielHeight ?? 0).ToString(),
- //閲嶉噺
- singleProductWeight = (item.MaterielWeight ?? 0).ToString(),
- //浣撶Н
- singleProductVolume = (item.MaterielVolume ?? 0).ToString(),
- //鏄惁鍙栨秷 0鏄笉鍒犻櫎锛�1鍒犻櫎
- isDelete = "0"
- };
- var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous";
- var result = HttpHelper.Post(url, medicineDTO.ToJsonString());
- var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
+ #region 鎵嬪姩鍏抽棴鏁版嵁搴撹繛鎺� 鍚屾涓嬫父鐗╂枡
+ //public WebResponseContent ProductSynchronous()
+ //{
+ // using (var db = new SqlSugarClient(new ConnectionConfig
+ // {
+ // 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()
+ // {
+ // IsAutoRemoveDataCache = true
+ // }
+ // }))
+ // {
+ // try
+ // {
+ // List<Dt_MaterielInfo> materielInfos = db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart && x.BoxQty > 0 && x.MinQty > 0 && x.GoodStatusState == "鏈笅鍙�").ToList();
+ // if (materielInfos.Count < 1)
+ // {
- if (resp != null && resp.code == "0")
- {
- item.GoodStatusState = "涓嬪彂瀹屾垚";
- }
- else
- {
- continue;
- }
+ // return WebResponseContent.Instance.Error("鏃犳湭涓嬪彂鑽搧");
+ // }
+ // var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous";
+ // foreach (var item in materielInfos)
+ // {
+ // var medicineDTO = new ProductInfo
+ // {
+ // //鐢ㄦ埛code
+ // customerCode = "905",
+ // //鐗╂枡绫诲瀷
+ // materialCode = item.MaterielErpType,
+ // //浜у搧缂栫爜
+ // productCode = item.MaterielCode,
+ // //浜у搧鍚�
+ // productName = item.MaterielName,
+ // //浜у搧鏉$爜
+ // productBarCode = item.Barcode,
- }
- BaseDal.UpdateData(list);
- //Db.Updateable(list).ExecuteCommand();
- return new WebResponseContent { Status = true, Message = "鎴愬姛" };
- }
- catch (Exception ex)
- {
- Console.WriteLine("ProductSynchronous 寮傚父锛�" + ex.Message);
- return new WebResponseContent { Status = false, Message = ex.Message };
- }
+ // //鑽墏
+ // medicine = item.Dosage_form,//杩欓噷瑕佽皟鐢ㄦ柟娉曪紝杞寲鏂规硶
- }
+ // //瑙勬牸
+ // productSpecifications = item.MaterielSpec,
+ // //鍗曚綅
+ // unit = item.MaterielUnit,
+ // //闀�
+ // singleProductLongNum = (item.MaterielLength ?? 0).ToString(),
+ // //瀹�
+ // singleProductWideNum = (item.MaterielWide ?? 0).ToString(),
+ // //楂�
+ // singleProductHighNum = (item.MaterielHeight ?? 0).ToString(),
+ // //閲嶉噺
+ // singleProductWeight = (item.MaterielWeight ?? 0).ToString(),
+ // //浣撶Н
+ // singleProductVolume = (item.MaterielVolume ?? 0).ToString(),
+ // //鏄惁鍙栨秷 0鏄笉鍒犻櫎锛�1鍒犻櫎
+ // isDelete = "0"
+ // };
+ // var result = HttpHelper.Post(url, medicineDTO.ToJsonString());
+ // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
+ // if (resp != null && resp.code == "0") item.GoodStatusState = "涓嬪彂瀹屾垚";
+ // }
+ // db.Updateable(materielInfos).ExecuteCommand();
+
+ // return WebResponseContent.Instance.OK();
+ // }
+ // catch (Exception ex)
+ // {
+ // Console.WriteLine("涓嬪彂WCS鐗╂枡淇℃伅寮傚父锛�" + ex.Message);
+ // return WebResponseContent.Instance.Error(ex.Message);
+ // }
+ // }
+ //}
+ #endregion
+
public override WebResponseContent DeleteData(object[] keys)
{
WebResponseContent content = new WebResponseContent();
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs"
index 7ab47d9..5ec07cc 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs"
@@ -120,6 +120,9 @@
return content;
}
+ /// <summary>
+ /// 娑堟伅澶勭悊鍜屾帹閫� WebSocket瀹炴椂鎺ㄩ��
+ /// </summary>
public void GetMessageInfo()
{
try
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>
/// 鍏ュ簱鎶ュ畬鎴愭帴鍙�
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index 278a7b4..e9578a4 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -9,6 +9,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Transactions;
using WIDESEA_Common;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.OrderEnum;
@@ -502,6 +503,338 @@
#endregion
#region 鍒涘缓鐩樼泩鍏ュ簱鍗�
+ //public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo order)
+ //{
+ // WebResponseContent content = new WebResponseContent();
+ // try
+ // {
+ // string WareCodeMJ = WarehouseEnum.楹荤簿搴�.ObjToInt().ToString("000");
+ // string WareCodeLD = WarehouseEnum.鍐峰喕搴�.ObjToInt().ToString("000");
+ // List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>();
+ // List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>();
+ // List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>();
+ // var codes = order.details.Select(x => x.goods_no).ToList();
+ // #region 鐗规畩搴撴埧
+ // if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD)
+ // {
+
+ // List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
+ // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
+ // #region 搴撳瓨銆佸簱瀛樻壒娆″钩璐�
+ // foreach (var item in order.details)
+ // {
+ // //鎵惧簱瀛樻壒娆′俊鎭�
+ // Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
+ // if (inventory_Batch.SupplyQuantity != item.order_qty)
+ // {
+ // _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP鎶ユ姤婧㈠叆搴撻敊璇�", $"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+ // throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+ // }
+ // //鎵炬墍鏈夊簱瀛�
+ // List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
+ // foreach (var inventoryInfo in inventoryInfos)
+ // {
+ // #region 娣诲姞鐩樼泩鍏ュ簱浠诲姟
+ // if (inventoryInfo.SupplyQuantity != 0)
+ // {
+ // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
+ // {
+ // WarehouseCode = inventoryInfo.WarehouseCode,
+ // OperateType = OperateTypeEnum.鑷姩瀹屾垚.ToString(),
+ // InsertTime = DateTime.Now,
+ // TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
+ // BatchNo = inventoryInfo.BatchNo,
+ // MaterielName = inventoryInfo.MaterielName,
+ // MaterielCode = inventoryInfo.MaterielCode,
+ // MaterielSpec = inventoryInfo.MaterielSpec,
+ // TaskType = TaskTypeEnum.ChenckIn.ObjToInt(),
+ // CreateDate = DateTime.Now,
+ // Creater = App.User.UserName,
+ // LocationCode = inventoryInfo.LocationCode,
+ // OrderNo = order.order_no,
+ // StockQuantity = inventoryInfo.SupplyQuantity,
+ // SupplyQuantity = 0,
+ // Remark = "鐩樼泩鍏ュ簱"
+ // };
+ // //_supplyTaskHtyService.AddData(supplyTask_Hty);
+ // supplyTask_Hties.Add(supplyTask_Hty);
+ // }
+ // #endregion
+ // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+ // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
+ // inventoryInfo.SupplyQuantity = 0;
+ // inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+ // }
+ // infosUp.AddRange(inventoryInfos);
+ // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
+ // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
+ // inventory_Batch.SupplyQuantity = 0;
+ // batchesUp.Add(inventory_Batch);
+ // //_inventoryInfoService.UpdateData(inventoryInfos);
+ // //_inventory_BatchServices.UpdateData(inventory_Batch);
+ // }
+ // #endregion
+ // #region 鍒涘缓鐩樼偣鍗�
+ // var entityOrder = new Dt_CabinOrder
+ // {
+ // Order_no = order.order_no,
+ // Order_type = order.order_type,
+ // Supplier_no = order.supplier_no,
+ // Account_tiem = order.account_time,
+ // OdrderStatus = "宸插畬鎴�",
+ // Supplier_name = order.supplier_name,
+ // Warehouse_no = order.warehouse_no,
+ // Details = order.details.Select(d => new Dt_CabinOrderDetail
+ // {
+ // Goods_no = d.goods_no,
+ // Order_qty = Math.Abs(d.order_qty),
+ // Order_Inqty = Math.Abs(d.order_qty),
+ // Batch_num = d.batch_num,
+ // Exp_date = d.exp_date,
+ // Reservoirarea = order.warehouse_no,
+ // OrderDetailStatus = "宸插畬鎴�",
+ // Status = 2,
+ // }).ToList()
+ // };
+ // _unitOfWorkManage.BeginTran();
+ // if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties);
+ // if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
+ // if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
+ // BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
+ // _unitOfWorkManage.CommitTran();
+ // //Repository.AddData(entityOrder);
+ // #endregion
+ // }
+ // #endregion
+ // else
+ // {
+ // List<Dt_CabinOrder> cabinOrdersAdd = new List<Dt_CabinOrder>();
+ // string WareCodeLK = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
+ // string WareCodeDJ = WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000");
+ // List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
+ // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
+ // foreach (var item in order.details)
+ // {
+ // //鎵惧簱瀛樻壒娆′俊鎭�
+ // Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
+ // var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
+ // if (Qty != item.order_qty)
+ // {
+ // _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP鎶ユ姤婧㈠叆搴撻敊璇�", $"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+ // throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+ // }
+
+ // //鎵炬墍鏈夊簱瀛�
+ // List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
+ // //鑾峰彇绔嬪簱鐩樼偣宸紓鏁�
+ // var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); //淇敼杩欓噷鏈夊彲鑳藉彧鏈夊ぇ浠跺簱鎵嶄細瀛樺湪宸紓
+ // //var LkQty = Math.Abs(inventoryLK.SupplyQuantity);
+ // var LkQty = inventoryLK?.SupplyQuantity ?? 0;
+
+ // //鑾峰彇澶т欢搴撶洏鐐瑰樊寮傛暟
+ // var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
+ // //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity));
+ // var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
+ // if (LkQty + DJQty != Qty)
+ // {
+ // _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP鎶ユ姤婧㈠叆搴撻敊璇�", $"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+ // throw new Exception($"銆恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐗╂枡淇℃伅涓庣墿鏂欐壒娆′俊鎭洏鐩堟暟閲忎笉绗�");
+ // }
+
+ // if (LkQty == 0)//绔嬪簱鏃犲樊寮�
+ // {
+ // #region 搴撳瓨銆佸簱瀛樻壒娆″钩璐�
+ // foreach (var inventoryInfo in inventoryInfos)
+ // {
+ // #region 娣诲姞鐩樼泩鍏ュ簱浠诲姟
+ // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity)
+ // {
+ // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
+ // {
+ // WarehouseCode = inventoryInfo.WarehouseCode,
+ // OperateType = OperateTypeEnum.鑷姩瀹屾垚.ToString(),
+ // InsertTime = DateTime.Now,
+ // TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
+ // BatchNo = inventoryInfo.BatchNo,
+ // MaterielName = inventoryInfo.MaterielName,
+ // MaterielCode = inventoryInfo.MaterielCode,
+ // MaterielSpec = inventoryInfo.MaterielSpec,
+ // TaskType = TaskTypeEnum.ChenckIn.ObjToInt(),
+ // CreateDate = DateTime.Now,
+ // Creater = App.User.UserName,
+ // LocationCode = inventoryInfo.LocationCode,
+ // OrderNo = order.order_no,
+ // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
+ // SupplyQuantity = 0,
+ // Remark = "鐩樼泩鍏ュ簱"
+ // };
+ // //_supplyTaskHtyService.AddData(supplyTask_Hty);
+ // supplyTask_Hties.Add(supplyTask_Hty);
+ // }
+ // #endregion
+ // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+ // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
+ // inventoryInfo.SupplyQuantity = 0;
+ // inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+ // }
+ // //_inventoryInfoService.UpdateData(inventoryInfos);
+ // infosUp.AddRange(inventoryInfos);
+ // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
+ // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
+ // inventory_Batch.SupplyQuantity = 0;
+ // //_inventory_BatchServices.UpdateData(inventory_Batch);
+ // batchesUp.Add(inventory_Batch);
+ // #endregion
+
+ // #region 鍒涘缓澶т欢搴撶洏鐐瑰崟
+ // var entityOrder = new Dt_CabinOrder
+ // {
+ // Order_no = order.order_no,
+ // Order_type = order.order_type,
+ // Supplier_no = order.supplier_no,
+ // Account_tiem = order.account_time,
+ // OdrderStatus = "宸插畬鎴�",
+ // Supplier_name = order.supplier_name,
+ // Warehouse_no = WareCodeDJ,
+ // Details = order.details.Select(d => new Dt_CabinOrderDetail
+ // {
+ // Goods_no = d.goods_no,
+ // Order_qty = Math.Abs(d.order_qty),
+ // Order_Inqty = Math.Abs(d.order_qty),
+ // Batch_num = d.batch_num,
+ // Exp_date = d.exp_date,
+ // Reservoirarea = WareCodeDJ,
+ // OrderDetailStatus = "宸插畬鎴�",
+ // Status = 2,
+ // }).ToList()
+ // };
+ // //Repository.AddData(entityOrder);
+ // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
+ // cabinOrdersAdd.Add(entityOrder);
+ // #endregion
+ // }
+ // else // LkQty != 0 琛ㄧず绔嬪簱鏈夊樊寮�
+ // {
+ // #region 澶т欢搴撳簱瀛樺钩璐�
+ // inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
+ // foreach (var inventoryInfo in inventoryInfos)
+ // {
+ // #region 娣诲姞鐩樼泩鍏ュ簱浠诲姟
+ // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity)
+ // {
+ // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
+ // {
+ // WarehouseCode = inventoryInfo.WarehouseCode,
+ // OperateType = OperateTypeEnum.鑷姩瀹屾垚.ToString(),
+ // InsertTime = DateTime.Now,
+ // TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
+ // BatchNo = inventoryInfo.BatchNo,
+ // MaterielName = inventoryInfo.MaterielName,
+ // MaterielCode = inventoryInfo.MaterielCode,
+ // MaterielSpec = inventoryInfo.MaterielSpec,
+ // TaskType = TaskTypeEnum.ChenckIn.ObjToInt(),
+ // CreateDate = DateTime.Now,
+ // Creater = App.User.UserName,
+ // LocationCode = inventoryInfo.LocationCode,
+ // OrderNo = order.order_no,
+ // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
+ // SupplyQuantity = 0,
+ // Remark = "鐩樼泩鍏ュ簱"
+ // };
+ // //_supplyTaskHtyService.AddData(supplyTask_Hty);
+ // supplyTask_Hties.Add(supplyTask_Hty);
+ // }
+ // #endregion
+ // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+ // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
+ // inventoryInfo.SupplyQuantity = 0;
+ // inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+ // }
+ // //_inventoryInfoService.UpdateData(inventoryInfos);
+ // infosUp.AddRange(inventoryInfos);
+ // #endregion
+
+ // #region 鍒涘缓澶т欢搴撶洏鐐瑰崟
+ // if (DJQty != 0)
+ // {
+ // var cabinOrder = new Dt_CabinOrder
+ // {
+ // Order_no = order.order_no,
+ // Order_type = order.order_type,
+ // Supplier_no = order.supplier_no,
+ // Account_tiem = order.account_time,
+ // OdrderStatus = "宸插畬鎴�",
+ // Supplier_name = order.supplier_name,
+ // Warehouse_no = WareCodeDJ,
+ // Details = order.details.Select(d => new Dt_CabinOrderDetail
+ // {
+ // Goods_no = d.goods_no,
+ // Order_qty = DJQty,
+ // Order_Inqty = DJQty,
+ // Batch_num = d.batch_num,
+ // Exp_date = d.exp_date,
+ // Reservoirarea = WareCodeDJ,
+ // OrderDetailStatus = "宸插畬鎴�",
+ // Status = 2,
+ // }).ToList()
+ // };
+ // //Repository.AddData(cabinOrder);
+ // //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand();
+ // cabinOrdersAdd.Add(cabinOrder);
+ // }
+ // #endregion
+
+ // #region 鍒涘缓绔嬪簱鐩樼偣鍗�
+ // var entityOrder = new Dt_CabinOrder
+ // {
+ // Order_no = order.order_no,
+ // Order_type = order.order_type,
+ // Supplier_no = order.supplier_no,
+ // Account_tiem = order.account_time,
+ // OdrderStatus = "鏂板缓",
+ // Supplier_name = order.supplier_name,
+ // Warehouse_no = WareCodeLK,
+ // Details = order.details.Select(d => new Dt_CabinOrderDetail
+ // {
+ // Goods_no = d.goods_no,
+ // Order_qty = Math.Abs(LkQty),
+ // Batch_num = d.batch_num,
+ // Exp_date = d.exp_date,
+ // Reservoirarea = WareCodeLK,
+ // OrderDetailStatus = "鏂板缓",
+ // Status = 0,
+ // }).ToList()
+ // };
+ // //Repository.AddData(entityOrder);
+ // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
+ // cabinOrdersAdd.Add(entityOrder);
+ // #endregion
+ // }
+ // }
+
+ // _unitOfWorkManage.BeginTran();
+ // if (supplyTask_Hties.Count > 1) _supplyTaskHtyService.AddData(supplyTask_Hties);
+
+ // if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
+ // if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
+ // if (cabinOrdersAdd.Count > 0) BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand();
+ // _unitOfWorkManage.CommitTran();
+ // // 娣诲姞浜嬪姟鎻愪氦鍚庣殑妫�鏌�
+ // Console.WriteLine($"浜嬪姟鎻愪氦瀹屾垚锛屽噯澶囪繑鍥炪�俢abinOrdersAdd鏁伴噺: {cabinOrdersAdd.Count}");
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // _unitOfWorkManage.RollbackTran();
+ // //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "鍒涘缓鐩樼泩鍏ュ簱鍗�", ex.Message);
+ // //return content.Error(ex.Message);
+ // throw ex;
+ // }
+ // //return content;
+ // return content.OK($"鐩樼泩鍏ュ簱鍗� {order.order_no} 鍒涘缓鎴愬姛");
+ //}
+ #endregion
+ #region 鍒涘缓鐩樼泩鍏ュ簱鍗�(淇敼鍘熺増鍥犱负鍓嶉潰璁㈠崟鍒涘缓澶辫触瀵艰嚧鍚庨潰涔熷垱寤轰笉浜嗛棶棰�)
public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo order)
{
WebResponseContent content = new WebResponseContent();
@@ -573,7 +906,6 @@
//_inventory_BatchServices.UpdateData(inventory_Batch);
}
#endregion
-
#region 鍒涘缓鐩樼偣鍗�
var entityOrder = new Dt_CabinOrder
{
@@ -596,13 +928,14 @@
Status = 2,
}).ToList()
};
- _unitOfWorkManage.BeginTran();
- _supplyTaskHtyService.AddData(supplyTask_Hties);
- _inventoryInfoService.UpdateData(infosUp);
- _inventory_BatchServices.UpdateData(batchesUp);
- BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
- _unitOfWorkManage.CommitTran();
- //Repository.AddData(entityOrder);
+ using (var scop = new TransactionScope(TransactionScopeOption.RequiresNew))
+ {
+ if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties);
+ if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
+ if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
+ BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
+ scop.Complete();
+ }
#endregion
}
#endregion
@@ -627,9 +960,9 @@
//鎵炬墍鏈夊簱瀛�
List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
//鑾峰彇绔嬪簱鐩樼偣宸紓鏁�
- var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First();
+ var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); //淇敼杩欓噷鏈夊彲鑳藉彧鏈夊ぇ浠跺簱鎵嶄細瀛樺湪宸紓
//var LkQty = Math.Abs(inventoryLK.SupplyQuantity);
- var LkQty = inventoryLK.SupplyQuantity;
+ var LkQty = inventoryLK?.SupplyQuantity ?? 0;
//鑾峰彇澶т欢搴撶洏鐐瑰樊寮傛暟
var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
@@ -797,7 +1130,7 @@
Details = order.details.Select(d => new Dt_CabinOrderDetail
{
Goods_no = d.goods_no,
- Order_qty =Math.Abs( LkQty),
+ Order_qty = Math.Abs(LkQty),
Batch_num = d.batch_num,
Exp_date = d.exp_date,
Reservoirarea = WareCodeLK,
@@ -811,25 +1144,27 @@
#endregion
}
}
- _unitOfWorkManage.BeginTran();
- _supplyTaskHtyService.AddData(supplyTask_Hties);
- _inventoryInfoService.UpdateData(infosUp);
- _inventory_BatchServices.UpdateData(batchesUp);
- BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand();
- _unitOfWorkManage.CommitTran();
+ using (var scop = new TransactionScope(TransactionScopeOption.RequiresNew))
+ {
+ if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties);
+ if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
+ if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
+ if (cabinOrdersAdd.Count > 0) BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand();
+ scop.Complete();
+ }
}
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
- //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "鍒涘缓鐩樼泩鍏ュ簱鍗�", ex.Message);
- content.Error(ex.Message);
+ throw ex;
}
- return content;
+ //return content;
+ return content.OK($"鐩樼泩鍏ュ簱鍗曞垱寤烘垚鍔�");
}
#endregion
+
/// <summary>
/// 浜哄伐鍏ュ簱瀹屾垚
/// </summary>
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
index 97ae41b..c0433d5 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
@@ -354,9 +354,9 @@
List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>();
List<Dt_InventoryInfo> inventoryInfosUp = new List<Dt_InventoryInfo>();
List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
- List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode));
- var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode));
- var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK));
+ List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList();
+ var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList();
+ var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK)).ToList();
foreach (var detail in outorder.details)
{
#region 鏌ヨ搴撳瓨鎵规鍜屽簱瀛�
@@ -1098,8 +1098,8 @@
List<Dt_DeliveryOrder> deliveryOrdersAdd = new List<Dt_DeliveryOrder>();
string WareCodeLK = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
string WareCodeDJ = WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000");
- List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
- List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
+ List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
+ List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
foreach (var item in order.details)
{
@@ -1115,8 +1115,8 @@
//鎵炬墍鏈夊簱瀛�
List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
//鑾峰彇绔嬪簱鐩樼偣宸紓鏁�
- var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First();
- var LkQty = inventoryLK.SupplyQuantity;
+ var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault();
+ var LkQty = inventoryLK?.SupplyQuantity??0;
//鑾峰彇澶т欢搴撶洏鐐瑰樊寮傛暟
var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs"
index 3ebd163..6469e42 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs"
@@ -5,6 +5,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_ISquareCabinServices;
@@ -187,7 +188,8 @@
WebResponseContent content = new WebResponseContent();
try
{
- var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder";
+ //var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder";
+ var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363009261";
string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (string.IsNullOrEmpty(SearchInOrderDate)) SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var requestData = new { searchDate = SearchInOrderDate };
@@ -239,13 +241,13 @@
else if (order.order_type == "3")//鍏ュ簱閫�鏂�
{
#region 杞崲涓哄嚭搴撳崟
- UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo()
+ UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo()
{
order_no = order.order_no,
order_type = order.order_type,
- client_no=order.supplier_no,
- client_name=order.supplier_name,
- account_time=order.account_time,
+ client_no = order.supplier_no,
+ client_name = order.supplier_name,
+ account_time = order.account_time,
warehouse_no = order.warehouse_no,
details = new List<UpstreamOutOrderDetail>()
};
@@ -286,6 +288,10 @@
}
#endregion
+
+
+
+
#region 鑾峰彇ERP鍑哄簱鍗�
static string SearchOutOrderDate = "2025-11-01 00:00:00";
public WebResponseContent GetOutOrder()
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs"
index 6b8859f..8a0be83 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs"
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_ISystemService;
@@ -14,6 +15,27 @@
{
public Sys_LogService(IRepository<Sys_Log> BaseDal) : base(BaseDal)
{
+
+ }
+
+ /// <summary>
+ /// 瀹氭椂鍒犻櫎鏃ュ織
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent ScheduledDeletion()
+ {
+ WebResponseContent response = new WebResponseContent();
+ try
+ {
+ var deleteDate = DateTime.Now.AddDays(-7); // 7澶╁墠鐨勬棩鏈�
+ var logs = BaseDal.QueryData(x => x.BeginDate < deleteDate).ToList();
+ var deleteCount = BaseDal.DeleteData(logs);
+ }
+ catch (Exception ex)
+ {
+ return response.Error(ex.Message );
+ }
+ return response;
}
}
}
--
Gitblit v1.9.3