From 39ee9078d88fd4787437360e7f69ed999aaf0b7b Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 28 十二月 2024 09:14:41 +0800 Subject: [PATCH] 更新代码 --- 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 126 ++++++--- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs | 82 +++--- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 134 ++------- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs | 58 ++- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 31 + 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs | 8 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs | 86 ++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs | 38 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 169 ++++++++---- /dev/null | 0 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs | 16 - 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs | 13 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs | 11 23 files changed, 480 insertions(+), 299 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/144011e2-42f0-4bb3-91f4-4f3faf1287db.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/144011e2-42f0-4bb3-91f4-4f3faf1287db.vsidx" deleted file mode 100644 index a28b4f9..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/144011e2-42f0-4bb3-91f4-4f3faf1287db.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx" new file mode 100644 index 0000000..f7a2213 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx" deleted file mode 100644 index 1e78c84..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/82bf8887-9a08-48ab-8128-b1344527468e.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/82bf8887-9a08-48ab-8128-b1344527468e.vsidx" deleted file mode 100644 index 9b27507..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/82bf8887-9a08-48ab-8128-b1344527468e.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx" new file mode 100644 index 0000000..df9afad --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx" new file mode 100644 index 0000000..b6d4a65 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c0d350a6-e99f-4e34-9928-0112aed4569d.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c0d350a6-e99f-4e34-9928-0112aed4569d.vsidx" deleted file mode 100644 index b28cdc2..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c0d350a6-e99f-4e34-9928-0112aed4569d.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx" new file mode 100644 index 0000000..b1e7334 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx" new file mode 100644 index 0000000..cf85f90 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" new file mode 100644 index 0000000..e69de29 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs" index d46b378..22e5586 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs" @@ -33,9 +33,13 @@ /// <summary> /// 鏈敹璐� /// </summary> - [Description("鏈敹璐�")] + [Description("鏀惰揣")] NotReceived = 0, - + /// <summary> + /// 鏀惰揣涓� + /// </summary> + [Description("鏀惰揣涓�")] + Receiving = 1, /// <summary> /// 鏀惰揣瀹屾垚 /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs" new file mode 100644 index 0000000..389b525 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs" @@ -0,0 +1,86 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Net.Http.Headers; +using WIDESEA_Core.LogHelper; +using System.Security.Cryptography; + +namespace WIDESEA_Core.Helper +{ + public class HttpMesHelper + { + public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null) + { + string result = string.Empty; + DateTime beginDate = DateTime.Now; + try + { + using (HttpContent httpContent = new StringContent(requestJson)) + { + httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + + using HttpClient httpClient = new HttpClient(); + httpClient.Timeout = new TimeSpan(0, 0, 60); + long currentTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); + string key = $"appkey=1830415116987195392×tamp={currentTimestamp}"; + string authorization = "Open " + GetStr(key); + headers = new Dictionary<string, string> + { + { "Appkey", "1830415116987195392" }, + { "Authorization", authorization }, + { "site_tenant_id", "ced19269-2b83-4577-be43-8cc2f700251e" } + }; + if (headers != null) + { + foreach (var header in headers) + httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); + } + HttpResponseMessage responseMessage = httpClient.PostAsync(serviceAddress, httpContent).Result; + result = responseMessage.Content.ReadAsStringAsync().Result; + } + return result; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + finally + { + Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate); + } + } + public static string GetStr(string textToEncrypt) + { + string publicKey; + string privateKey; + GenerateRSAKeyPair(out publicKey, out privateKey); + byte[] encryptedBytes = RSAEncrypt(textToEncrypt, publicKey); + // 鍙互灏嗗姞瀵嗗悗鐨勫瓧鑺傛暟缁勮浆鎹负Base64瀛楃涓叉柟渚垮悗缁鐞嗭紝渚嬪浼犺緭绛� + string encryptedBase64 = Convert.ToBase64String(encryptedBytes); + return encryptedBase64; + } + public static void GenerateRSAKeyPair(out string publicKey, out string privateKey) + { + using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048)) + { + publicKey = rsa.ToXmlString(false); + privateKey = rsa.ToXmlString(true); + } + } + public static byte[] RSAEncrypt(string plainText, string publicKey) + { + byte[] encryptedData; + using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) + { + rsa.FromXmlString(publicKey); + // 灏嗘枃鏈浆鎹负UTF8缂栫爜鐨勫瓧鑺傛暟缁� + byte[] plainBytes = Encoding.UTF8.GetBytes(plainText); + // 浣跨敤SHA1鍝堝笇绠楁硶浠ュ強Pkcs1濉厖瑙勫垯杩涜鍔犲瘑 + encryptedData = rsa.Encrypt(plainBytes, true); + } + return encryptedData; + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs" new file mode 100644 index 0000000..2a18606 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs" @@ -0,0 +1,38 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.Attributes; + +namespace WIDESEA_DTO.MES +{ + public class MESRoot<T> + { + /// <summary> + /// + /// </summary> + public string From { get; set; } + /// <summary> + /// + /// </summary> + public string DateTime { get; set; } + + public T Content { get; set; } + } + /// <summary> + ///娴嬭瘯鏋跺悓姝� + /// </summary> + public class TestToolSynInfo + { + /// <summary> + /// 娴嬭瘯鏋舵壒娆″彿 + /// </summary> + public string ToolCode { get; set; } + /// <summary> + /// 鍒濆瀵垮懡 + /// </summary> + public int Life { get; set; } + + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" index 509c22f..3084fa6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" @@ -56,19 +56,5 @@ [PropertyValidate("娴嬭瘯鏋舵壒娆″彿", NotNullAndEmpty = true)] public string TestToolCode { get; set; } } - /// <summary> - ///娴嬭瘯鏋跺悓姝� - /// </summary> - public class TestToolSynInfo - { - /// <summary> - /// 娴嬭瘯鏋舵壒娆″彿 - /// </summary> - public string ToolCode { get; set; } - /// <summary> - /// 鍒濆瀵垮懡 - /// </summary> - public int Life { get; set; } - - } + } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" index db7d5b0..c63b33d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" @@ -24,5 +24,7 @@ WebResponseContent FeedbackInboundOrder(int id); WebResponseContent MaterielGroup(SaveModel saveModel); + //鍏ュ簱瀹屾垚涓婃姤 + WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" index 263037e..10078f3 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" @@ -108,5 +108,6 @@ /// <returns></returns> MesResponseContent TestScrap(TestToolScrap toolScrap); WebResponseContent IsRelocation(int taskNum, string locationCode); + WebResponseContent TestSynStock(TestToolSynInfo toolSynInfo); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index c02a048..2363716 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -129,7 +129,7 @@ return content; } /// <summary> - /// 鍗曚釜鐗╂枡鐮佺粍鐩� + /// 鍗曚釜鐗╂枡鐮佺粍鐩� 閫傜敤娴嬭瘯鏋� /// </summary> /// <param name="inboundOrderId"></param> /// <param name="palletCode"></param> @@ -144,65 +144,76 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅"); } - if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0) + if (inboundOrder.OrderStatus>=InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt()) + { + return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞凡缁撴潫"); + } + if (inboundOrder.Details.Count <= 0) { return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅"); } - - Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First(); - if (receiveOrder == null) + MatSerNumAnalysisModel model = new MatSerNumAnalysisModel() { - return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�"); - } - if (receiveOrder.Details == null || receiveOrder.Details.Count <= 0) - { - return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�"); - } - - List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList(); - - MatSerNumAnalysisModel model = new MatSerNumAnalysisModel() - { - MaterielCode= "307000309", - LotNo= "20241216001", - ProductionDate= "2024-12-16", - EffectiveDate= "2025-12-16", - PurchaseOrderNo= "POHA02241216275", - Quantity=1, - SerialNumber= "M:307000309,BS:20241216001,DM:2024-12-16,DE:2025-12-16,Q:4,PO:POHA02241216275" + MaterielCode = "504907335", + LotNo = "20241217001", + ProductionDate = "2024-12-17", + EffectiveDate = "2025-12-17", + PurchaseOrderNo = "POHA02241227285", + Quantity = 1, + SerialNumber = "M:504907335,BS:20241217001,DM:2024-12-17,DE:2025-12-17,Q:1,PO:POHA02241227285" };//娴嬭瘯 - //CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum); - - Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterielCode); if (materielInfo == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�"); } - - List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == model.MaterielCode).ToList(); - - if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0) + if (materielInfo.WarehouseId != inboundOrder.WarehouseId) { - return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�"); + return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬鏈粨"); } - if (receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode) == null) + Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First(); + if (receiveOrder == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�"); + } + if (receiveOrder.Details.Count <= 0) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�"); + } + List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList(); + if (!purchaseOrderNos.Contains(model.PurchaseOrderNo)) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板搴旀敹璐у崟鏄庣粏涓噰璐崟"); + } + Dt_ReceiveOrderDetail? receiveOrderDetail = receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode); + if (receiveOrderDetail == null) { return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�"); } - if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null) + Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode); + if (inboundOrderDetail == null) { - return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ラ噰璐崟"); + return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�"); } - - Dt_InboundOrderDetail? notGroupDetail = inboundOrderDetails.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt() && x.OrderQuantity == model.Quantity).FirstOrDefault(); - - if (notGroupDetail == null) + if (inboundOrderDetail.OrderDetailStatus>OrderDetailStatusEnum.GroupAndInbound.ObjToInt()) { - return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚"); + return WebResponseContent.Instance.Error($"瀵瑰簲鍏ュ簱鍗曟槑缁嗗凡缁撴潫"); } - + float inboundDetailSum = inboundOrderDetail.OverInQuantity + inboundOrderDetail.ReceiptQuantity ; + if (inboundDetailSum == inboundOrderDetail.OrderQuantity) + { + return WebResponseContent.Instance.Error($"璇ョ墿鏂欏叆搴撳崟鏄庣粏宸插叏閮ㄧ粍鐩樺畬鎴�"); + } + if (model.Quantity > receiveOrderDetail.ReceivedQuantity || (inboundDetailSum + model.Quantity) > receiveOrderDetail.ReceivedQuantity) + { + return WebResponseContent.Instance.Error($"涓庤鏀惰揣鍗曟槑缁嗘敹璐ф暟閲忎笉涓�鑷�"); + } + Dt_StockInfo oldStockinfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode); + if(oldStockinfo!=null) + { + return WebResponseContent.Instance.Error($"鎵樼洏閲嶅"); + } Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail() { BatchNo = model.LotNo, @@ -215,7 +226,7 @@ Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), ProductionDate = model.ProductionDate, EffectiveDate = model.EffectiveDate, - InboundOrderRowNo = notGroupDetail.RowNo, + InboundOrderRowNo = inboundOrderDetail.RowNo, }; Dt_StockInfo stockInfo = new Dt_StockInfo() @@ -225,14 +236,25 @@ WarehouseId = inboundOrder.WarehouseId, Details=new List<Dt_StockInfoDetail> { stockInfoDetail } }; - + inboundOrderDetail.ReceiptQuantity += model.Quantity; + _unitOfWorkManage.BeginTran(); + if (inboundOrderDetail.OrderDetailStatus==OrderDetailStatusEnum.New.ObjToInt()) + { + inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt(); + } + _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail); + if (inboundOrder.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt()) + { + inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt(); + BaseDal.UpdateData(inboundOrder); + } _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand(); - _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails); - + _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) { + _unitOfWorkManage.RollbackTran(); return WebResponseContent.Instance.Error(ex.Message); } } @@ -545,8 +567,22 @@ return WebResponseContent.Instance.Error(ex.Message); } } + public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo) + { + WebResponseContent content=new WebResponseContent(); + try + { + + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + /// <summary> - /// 鍏ュ簱瀹屾垚鍥炰紶鍒癊RP + /// 鍏ュ簱瀹屾垚鍥炰紶鍒癊RP 娴嬭瘯 /// </summary> /// <param name="id"></param> /// <returns></returns> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" index 188c4e0..76ab96e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" @@ -49,7 +49,7 @@ { try { - Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.QueryFirst(x => x.ReceiveOrderNo == orderNo); + Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x=>x.Details).First(); if (receiveOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌鏀惰揣鍗�"); @@ -67,92 +67,141 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�"); } - - Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.QueryFirst(x => x.PurchaseOrderNo == model.PurchaseOrderNo); + //璇ユ敹璐у崟浠撳簱鏄惁鏈夎鐗╂枡 + if (materielInfo.WarehouseId!= receiveOrder.WarehouseId) + { + return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬璇ヤ粨搴�"); + } + Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x=>x.Details).First(); if (purchaseOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�"); } - + if (purchaseOrder.Details.Count == 0) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗曟槑缁嗘暟鎹�"); + } if (purchaseOrder.SupplierCode != receiveOrder.SuppliersId) { return WebResponseContent.Instance.Error($"渚涘簲鍟嗕笉涓�鑷�,璇锋柊寤烘敹璐у崟"); } - if (purchaseOrder.PurchaseOrderStatus == PurchaseOrderStatusEnum.Received.ObjToInt()) { return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏀惰揣宸插畬鎴�"); } - - List<Dt_PurchaseOrderDetail> purchaseOrderDetails = _inboundRepository.PurchaseOrderDetailRepository.QueryData(x => x.PurchaseOrderId == purchaseOrder.Id); - if (purchaseOrderDetails == null || purchaseOrderDetails.Count == 0) - { - return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗曟槑缁嗘暟鎹�"); - } - - Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrderDetails.FirstOrDefault(x => x.PurchaseDetailQuantity == model.Quantity && x.MaterielCode == model.MaterielCode && x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt()); + Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())); if (purchaseOrderDetail == null) { - if (purchaseOrderDetails.Count > 0) + if (purchaseOrder.Details.Count > 0) { return WebResponseContent.Instance.Error($"璇ユ槑缁嗘敹璐у凡瀹屾垚"); } - return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑閲囪喘鍗曟槑缁嗘暟鎹�"); } - Dt_ReceiveOrderDetail detail = BaseDal.QueryFirst(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo); - if (detail != null) + //鍒ゆ柇鏄惁瀛樺湪瀵瑰簲閲囪喘鏄庣粏鐨勬敹璐ф槑缁� + Dt_ReceiveOrderDetail? detail = receiveOrder.Details.FirstOrDefault(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo); + if (detail != null && detail.ReceivedQuantity == purchaseOrderDetail.PurchaseDetailQuantity) { - return WebResponseContent.Instance.Error($"璇ユ槑缁嗘敹璐у凡瀹屾垚"); + return WebResponseContent.Instance.Error($"璇ユ槑缁嗗凡鏀惰揣"); } lock (_rowNoLocker) { - int rowNo = 0; - List<Dt_ReceiveOrderDetail> receiveOrderDetails = BaseDal.QueryData(x => x.ReceiveOrderId == receiveOrder.ReceiveOrderId); - if (receiveOrderDetails != null && receiveOrderDetails.Count > 0) + if (detail!=null) { - rowNo = receiveOrderDetails.Max(x => x.RowNo); + //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺 + detail.ReceivedQuantity += model.Quantity; + purchaseOrderDetail.PurchaseDetailReceiveQty = detail.ReceivedQuantity; + if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity) + { + return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�"); + } + if(purchaseOrderDetail.PurchaseDetailReceiveQty ==purchaseOrderDetail.PurchaseDetailQuantity) + { + purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt(); + } + float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity; + _unitOfWorkManage.BeginTran(); + if (purchaseOrder.OrderQuantity == sumQty) + { + purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); + _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); + } + BaseDal.UpdateData(detail); + _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); + _unitOfWorkManage.CommitTran(); } - - Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() + else { - PurchaseOrderNo = model.PurchaseOrderNo, - ReceivedQuantity = model.Quantity, - MaterielCode = model.MaterielCode, - LotNo = model.LotNo, - ReceiveOrderId = receiveOrder.ReceiveOrderId, - PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo, - IfInspection = materielInfo.IsCheck.ObjToInt(), - CurrCode = "", - PriceInTax = 0, - TaxRate = "", - RowNo = rowNo + 1, - Unit = purchaseOrderDetail.Unit - }; - - if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt()) - { - receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(); + int rowNo = 0; + if (receiveOrder.Details.Count > 0) + { + rowNo = receiveOrder.Details.Max(x => x.RowNo); + } + Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() + { + PurchaseOrderNo = model.PurchaseOrderNo, + ReceivedQuantity = model.Quantity, + MaterielCode = model.MaterielCode, + LotNo = model.LotNo, + ReceiveOrderId = receiveOrder.ReceiveOrderId, + PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo, + IfInspection = materielInfo.IsCheck.ObjToInt(), + CurrCode = "", + PriceInTax = 0, + TaxRate = "", + RowNo = rowNo + 1, + Unit = purchaseOrderDetail.Unit + }; + if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt()) + { + receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(); + } + //鍒ゆ柇閲囪喘鏄庣粏鏁伴噺 + if (purchaseOrderDetail.PurchaseDetailQuantity<model.Quantity) + { + return WebResponseContent.Instance.Error($"璇锋牳瀵归噰璐崟璇ョ墿鏂欐暟閲�"); + } + if (purchaseOrderDetail.PurchaseDetailReceiveQty>0) + { + purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity; + } + else + { + purchaseOrderDetail.PurchaseDetailReceiveQty = model.Quantity; + } + if (purchaseOrderDetail.PurchaseDetailReceiveQty> purchaseOrderDetail.PurchaseDetailQuantity) + { + return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�"); + } + if (purchaseOrderDetail.PurchaseDetailQuantity == purchaseOrderDetail.PurchaseDetailReceiveQty) + { + purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt(); + } + float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity; + _unitOfWorkManage.BeginTran(); + BaseDal.AddData(receiveOrderDetail); + if (purchaseOrder.OrderQuantity == sumQty) + { + purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); + _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); + } + _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); + _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); + #region 娉ㄩ噴 + //if (materielInfo.IsCheck == WhetherEnum.True) + //{ + // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); + // checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; + // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; + // checkOrder.ScrappedQuantity = 0; + // checkOrder.ReturnQuantity = 0; + // checkOrder.DefectedQuantity = 0; + // _checkOrderRepository.AddData(checkOrder); + //} + #endregion + _unitOfWorkManage.CommitTran(); } - purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt(); - - _unitOfWorkManage.BeginTran(); - BaseDal.AddData(receiveOrderDetail); - _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); - _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); - - if (materielInfo.IsCheck == WhetherEnum.True) - { - Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); - checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; - checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; - checkOrder.ScrappedQuantity = 0; - checkOrder.ReturnQuantity = 0; - checkOrder.DefectedQuantity = 0; - _checkOrderRepository.AddData(checkOrder); - } - - _unitOfWorkManage.CommitTran(); + return WebResponseContent.Instance.OK(); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" index e309926..d18e849 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" @@ -139,7 +139,7 @@ CustomerId = receiveOrder.CustomerId, CreatorId = "TC20082",//娴嬭瘯 receiveOrder.Creater EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), - ReceiveDate = receiveOrder.ReceiveDate.ToString("yyyy-MM-dd HH:mm:ss"), + ReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), PlantsId = "HA02", SuppliersId = receiveOrder.SuppliersId, Type = Enum.GetName(typeof(ReceiveOrderTypeEnum),receiveOrder.ReceiveOrderType), @@ -155,12 +155,10 @@ { return WebResponseContent.Instance.Error(erpRequest.Data); } + //鏇存柊鏀惰揣鍗曚俊鎭� receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt(); receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt(); - //鏇存柊鏀惰揣鍗曚俊鎭� - _unitOfWorkManage.BeginTran(); BaseDal.UpdateData(receiveOrder); - _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -217,21 +215,22 @@ { return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈畬鎴�"); } + #region 娉ㄩ噴 + //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); + //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) + //{ + // return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚"); + //} - List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); - if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) - { - return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚"); - } - - if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) - { - return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�"); - } + //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) + //{ + // return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�"); + //} + #endregion Dt_InboundOrder inboundOrder = new Dt_InboundOrder() { - InboundOrderNo="TestInboundNo1",//娴嬭瘯 + InboundOrderNo="TestInboundNo21",//娴嬭瘯 UpperOrderNo = receiveOrder.ReceiveOrderNo, CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(), OrderStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(), @@ -244,15 +243,17 @@ foreach (var item in receiveOrder.Details) { float quantity = item.ReceivedQuantity; - if (item.IfInspection == WhetherEnum.True.ObjToInt()) - { - Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); - if (checkOrder == null) - { - return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�"); - } - quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); - } + #region 娉ㄩ噴 + //if (item.IfInspection == WhetherEnum.True.ObjToInt()) + //{ + // Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); + // if (checkOrder == null) + // { + // return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�"); + // } + // quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); + //} + #endregion Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail() { MaterielCode = item.MaterielCode, @@ -286,7 +287,7 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�"); } - if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0) + if (purchaseOrder.Details.Count == 0) { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅"); } @@ -333,24 +334,25 @@ }; rowNo += 1; receiveOrderDetails.Add(receiveOrderDetail); - - if (materielInfo.IsCheck == WhetherEnum.True) - { - Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); - checkOrder.CheckOrderNo = "TestCheckNo11";//娴嬭瘯 - checkOrder.ReceiveOrderNo = ""; - checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; - checkOrder.ScrappedQuantity = 0; - checkOrder.ReturnQuantity = 0; - checkOrder.DefectedQuantity = 0; - checkOrder.ReceiveDetailRowNo = rowNo; - checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt(); - checkOrders.Add(checkOrder); - } + #region 娉ㄩ噴 + //if (materielInfo.IsCheck == WhetherEnum.True) + //{ + // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); + // checkOrder.CheckOrderNo = "TestCheckNo21";//娴嬭瘯 + // checkOrder.ReceiveOrderNo = ""; + // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; + // checkOrder.ScrappedQuantity = 0; + // checkOrder.ReturnQuantity = 0; + // checkOrder.DefectedQuantity = 0; + // checkOrder.ReceiveDetailRowNo = rowNo; + // checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt(); + // checkOrders.Add(checkOrder); + //} + #endregion } receiveOrder = new Dt_ReceiveOrder() { - ReceiveOrderNo= "TestReceiveOrderNo11",//娴嬭瘯 + ReceiveOrderNo= "TestReceiveOrderNo21",//娴嬭瘯 ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(), CustomerId = "", DeliveryCode = "/", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs" index 729c762..cb46215 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs" @@ -58,13 +58,24 @@ /// </summary> [SugarColumn(IsNullable = false, ColumnDescription = "鍒涘缓鏂瑰紡", IsOnlyIgnoreUpdate = true)] public int CreateType { get; set; } - + /// <summary> + /// 閮ㄩ棬缂栧彿 + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閮ㄩ棬缂栧彿")] + public string DepartmentCode { get; set; } + /// <summary> + /// 閮ㄩ棬鍚嶇О + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閮ㄩ棬鍚嶇О")] + public string DepartmentName { get; set; } /// <summary> /// 澶囨敞 /// </summary> [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")] public string Remark { get; set; } + + /// <summary> /// 鍑哄簱鍗曟槑缁� /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs" index f1316e9..862466f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs" @@ -47,7 +47,7 @@ /// <summary> /// 鎵规鍙� /// </summary> - [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "鎵规鍙�")] + [SugarColumn(IsNullable = true, Length = 100, ColumnDescription = "鎵规鍙�")] public string BatchNo { get; set; } /// <summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" index a65c399..026f877 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" @@ -99,30 +99,7 @@ OrderQuantity = model.Qty, OrderId = oldOutboundOrder.Id }; - List<Dt_StockInfo>? stockInfos = new List<Dt_StockInfo>(); - //ERP涓婁紶娴嬭瘯浠撻鏂欏崟鏇存柊瀵瑰簲搴撳瓨鐘舵�� - if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) - { - WebResponseContent responseContent = TestOutStocksUpdate(warehouse, model); - if (!responseContent.Status) - { - return responseContent; - } - stockInfos = responseContent.Data as List<Dt_StockInfo>; - } - _unitOfWorkManage.BeginTran(); - if (stockInfos.Count>0) - { - _stockInfoRepository.UpdateData(stockInfos); - //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚 - if (!TestOutBack(stockInfos, warehouse, model).Status) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error($"娴嬭瘯鏋跺嚭搴撲笂鎶ュけ璐�"); - } - } _outboundOrderDetailRepository.AddData(outboundOrderDetail); - _unitOfWorkManage.CommitTran(); } } else @@ -136,7 +113,6 @@ OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), OrderQuantity = model.Qty, }; - Dt_OutboundOrder outboundOrder = new Dt_OutboundOrder() { OrderNo=model.OrderNo, @@ -145,33 +121,11 @@ OrderType = OutOrderTypeEnum.Issue.ObjToInt(), CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(), WarehouseId = warehouse.WarehouseId, + DepartmentCode = model.DepartmentCode, + DepartmentName = model.DepartmentName, Details = new List<Dt_OutboundOrderDetail> { outboundOrderDetail } }; - List<Dt_StockInfo>? stockInfos = new List<Dt_StockInfo>(); - //ERP涓婁紶娴嬭瘯浠撻鏂欏崟鏇存柊瀵瑰簲搴撳瓨鐘舵�� - if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) - { - WebResponseContent responseContent = TestOutStocksUpdate(warehouse, model); - if (!responseContent.Status) - { - return responseContent; - } - stockInfos = responseContent.Data as List<Dt_StockInfo>; - } - _unitOfWorkManage.BeginTran(); - if (stockInfos.Count > 0) - { - _stockInfoRepository.UpdateData(stockInfos); - //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚 - if (!TestOutBack(stockInfos, warehouse, model).Status) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error($"娴嬭瘯鏋跺嚭搴撲笂鎶ュけ璐�"); - } - } Db.InsertNav(outboundOrder).Include(x => x.Details).ExecuteCommand(); - _unitOfWorkManage.CommitTran(); - } } else if (model.Way == 2) @@ -217,7 +171,7 @@ return WebResponseContent.Instance.Error(ex.Message); } } - //涓婃姤鍑哄簱瀹屾垚 + //涓婃姤鍑哄簱瀹屾垚 娴嬭瘯鏋� public WebResponseContent TestOutUpload(int id) { try @@ -227,8 +181,8 @@ //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚 ERPPickItemModel eRPOutPick = new ERPPickItemModel() { - Lotno = "20241226001", - Qty = "5", + Lotno = "20241227001", + Qty = "1", Location = warehouse.WarehouseCode }; ERPPickModel pickModel = new ERPPickModel() @@ -247,11 +201,11 @@ ERPIssueModel issueModel = new ERPIssueModel() { UniqueTag = id.ToString(), - Code = "FL20241226001", + Code = "FL20241227001",//娴嬭瘯 WarehouseCode = warehouse.WarehouseCode, Docremark = "", - Deptno = "F2HAECZSQZ", - Deptname = "娣畨浜屽巶鍒朵笁鍖洪樆鐒�", + Deptno = outboundOrder.DepartmentCode, + Deptname = outboundOrder.DepartmentName, Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Createuser = "TC20082", Issitem = new List<ERPIssueItemModel>() { issueItemModel }, @@ -272,7 +226,6 @@ { return WebResponseContent.Instance.Error(ex.Message); } - return WebResponseContent.Instance.OK(); } /// <summary> /// 鏇存敼鍑哄簱鍗曞簱瀛樼姸鎬� @@ -285,7 +238,7 @@ try { //鑾峰彇鍑哄簱鍗曞簱瀛� - List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).OrderBy(x => x.CreateDate).Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == model.MCode)).Take((int)(model.Qty)).ToList(); + List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).ToList(); if (model.Qty > stockInfos.Count) { return WebResponseContent.Instance.Error($"鐗╂枡:{model.MCode}搴撳瓨涓嶈冻"); @@ -303,53 +256,28 @@ } } ///鎺ㄩ�佹祴璇曟灦鍑哄簱 - public WebResponseContent TestOutBack(List<Dt_StockInfo> stockInfos,Dt_Warehouse warehouse, ErpOutOrderDTO model) - { - try - { - //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚 - List<ERPOutPickDetail> pickDetails = stockInfos.Select(x => new ERPOutPickDetail() - { - Lotno = x.Details[0].BatchNo, - Qty = x.Details[0].StockQuantity.ObjToInt() - }).ToList(); - ERPOutPick outPick = new ERPOutPick() - { - Rowindex = model.RowNo, - Material = model.MCode, - Qty = model.Qty.ObjToInt(), - Dataitem = pickDetails - }; - ERPOutboundModel inboundModel = new ERPOutboundModel() - { - Way = 1, - UniqueTag = model.OrderNo, - Code = model.OrderNo, - WarehouseCode = warehouse.WarehouseCode, - Docremark = "", - Deptno = model.DepartmentCode, - DeptName = model.DepartmentName, - Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - Createuser = "WMS", - Picklist = new List<ERPOutPick>() { outPick }, - }; - string response = _invokeERPService.InvokeOutboundOrderApi(inboundModel); - ErpRequestContent requestContent=response.DeserializeObject<ErpRequestContent>(); - if (requestContent.res==1) - { - - return WebResponseContent.Instance.OK(requestContent.Data); - } - else - { - return WebResponseContent.Instance.Error(requestContent.Data); - } - } - catch (Exception ex) - { - return WebResponseContent.Instance.Error(ex.Message); - } - } + //public WebResponseContent TestOutBack(int id,List<string> locationIds) + //{ + // try + // { + + // string response = _invokeERPService.InvokeOutStandardsApi(issueModel); + // ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>(); + // if (requestContent.res == 1) + // { + + // return WebResponseContent.Instance.OK(requestContent.Data); + // } + // else + // { + // return WebResponseContent.Instance.Error(requestContent.Data); + // } + // } + // catch (Exception ex) + // { + // return WebResponseContent.Instance.Error(ex.Message); + // } + //} //public WebResponseContent FeedbackOutbondIssue(List<Dt_OutStockLockInfo> outStockLockInfos) //{ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" index 3f466c9..a5e1ad6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" @@ -1,4 +1,6 @@ -锘縰sing SqlSugar.Extensions; +锘� +using Newtonsoft.Json.Serialization; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; @@ -14,6 +16,7 @@ using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; +using WIDESEA_Core.Helper; using WIDESEA_DTO; using WIDESEA_DTO.ERP; using WIDESEA_DTO.MES; @@ -37,11 +40,11 @@ { Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA64.ToString()); //鑾峰彇搴撳瓨璁板綍 - Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => + List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && - x.StockStatus==(int)StockStatusEmun.鍏ュ簱瀹屾垚) - .Includes(x => x.Details).Where(x => x.Details.Any(x => x.BatchNo == model.ToolCode)).First(); - if (stockInfo==null) + x.StockStatus==(int)StockStatusEmun.鍏ュ簱瀹屾垚).Includes(x=>x.Details).ToList(); + Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x=>x.Details.Any(x=>x.BatchNo==model.ToolCode)); + if (stockInfo == null) { return responseContent.Error($"娴嬭瘯鏋�:{model.ToolCode}鏃犲彲鐢ㄥ簱瀛�"); } @@ -62,7 +65,7 @@ NextAddress = "", Roadway = locationInfo.RoadwayNo, SourceAddress = stockInfo.LocationCode, - TargetAddress = "", + TargetAddress = model.TargetAddressCode, TaskStatus = (int)TaskStatusEnum.New, TaskType = (int)TaskTypeEnum.Outbound, TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), @@ -86,7 +89,7 @@ //_recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.StockLock); _unitOfWorkManage.CommitTran(); //灏嗕换鍔℃帹閫佸埌WCS - PushTasksToWCS(new List<Dt_Task>() { taskOut },"AGV"); + PushTasksToWCS(new List<Dt_Task>() { taskOut }, "AGV"); responseContent.OK(); } catch (Exception ex) @@ -108,10 +111,10 @@ //鑾峰彇娴嬭瘯鏋跺師搴撳瓨淇℃伅 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString()); //鑾峰彇搴撳瓨璁板綍 - Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => + List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && - x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚) - .Includes(x => x.Details).Where(x => x.Details.Any(x => x.BatchNo == backModel.TestToolCode)).First(); + x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚).Includes(x => x.Details).ToList(); + Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == backModel.TestToolCode)); if (stockInfo==null) { return responseContent.Error($"{backModel.TestToolCode}搴撳瓨淇℃伅涓嶅瓨鍦�"); @@ -134,10 +137,9 @@ }; //鏇存敼搴撳瓨鐘舵�� stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt(); - _unitOfWorkManage.BeginTran(); + //灏嗕换鍔℃帹閫佸埌WCS + PushTasksToWCS(new List<Dt_Task>() { taskIn }, "AGV"); _stockRepository.StockInfoRepository.UpdateData(stockInfo); - _unitOfWorkManage.CommitTran(); - responseContent.OK(); } catch (Exception ex) @@ -159,17 +161,18 @@ //鑾峰彇娴嬭瘯鏋舵壒娆″彿搴撳瓨 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString()); //鑾峰彇搴撳瓨璁板綍 - Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => - x.WarehouseId == warehouse.WarehouseId && x.StockStatus==StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt()) - .Includes(x => x.Details).Where(x => x.Details.Any(x => x.BatchNo == toolScrap.ToolCode)).First(); + //鑾峰彇搴撳瓨璁板綍 + List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => + x.WarehouseId == warehouse.WarehouseId && + x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚).Includes(x => x.Details).ToList(); + Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == toolScrap.ToolCode)); + if (stockInfo == null) { return responseContent.Error($"{toolScrap.ToolCode}搴撳瓨淇℃伅涓嶅瓨鍦�"); } //娓呴櫎搴撳瓨淇℃伅 _unitOfWorkManage.BeginTran(); - _stockRepository.StockInfoRepository.DeleteData(stockInfo); - _stockRepository.StockInfoDetailRepository.DeleteData(stockInfo.Details); _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo,OperateTypeEnum.鑷姩鍒犻櫎); _stockRepository.StockInfoDetailRepository.DeleteAndMoveIntoHty(stockInfo.Details, OperateTypeEnum.鑷姩鍒犻櫎); _unitOfWorkManage.CommitTran(); @@ -192,13 +195,28 @@ try { Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.WMS_MES_TestToolSync.ToString()); - Root<TestToolSynInfo> root = new Root<TestToolSynInfo>() + MESRoot<TestToolSynInfo> root = new MESRoot<TestToolSynInfo>() { From = "WMS", - DateTime = DateTime.Now.ToString(), + DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Content=toolSynInfo }; + JsonSerializerSettings settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver() + }; + string request = JsonConvert.SerializeObject(root, settings); + string response = HttpMesHelper.Post(apiInfo.ApiAddress, request); + MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>(); //璋冪敤鎺ュ彛 + if (mesResponseContent.BSucc==true) + { + content.OK(mesResponseContent.StrMsg); + } + else + { + content.Error(mesResponseContent.StrMsg); + } } catch (Exception ex) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" index 447eda6..607c8f4 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" @@ -25,6 +25,7 @@ using WIDESEA_Common.OrderEnum; using WIDESEA_Common.StockEnum; using WIDESEA_Common.TaskEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -36,6 +37,7 @@ using WIDESEA_External.ERPService; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; +using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_IOutboundRepository; using WIDESEA_IOutboundService; @@ -61,6 +63,7 @@ private readonly IBasicRepository _basicRepository; private readonly IApiInfoRepository _apiInfoRepository; private readonly IInvokeERPService _invokeERPService; + private readonly IInboundRepository _inboundRepository; public ITaskRepository Repository => BaseDal; @@ -74,7 +77,7 @@ public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList(); - public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService) : base(BaseDal) + public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IInboundRepository inboundRepository) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -86,6 +89,7 @@ _basicRepository = basicRepository; _apiInfoRepository = apiInfoRepository; _invokeERPService = invokeERPService; + _inboundRepository = inboundRepository; } /// <summary> @@ -131,7 +135,7 @@ return WebResponseContent.Instance.Error($"浠诲姟绫诲瀷閿欒"); } - Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode).Includes(x => x.Details).First(); + Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode && x.WarehouseId==task.WarehouseId).Includes(x => x.Details).First(); if (stockInfo == null) { return WebResponseContent.Instance.Error($"鏈壘鍒版墭鐩樺搴旂殑缁勭洏淇℃伅"); @@ -142,7 +146,7 @@ return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅"); } - if (stockInfo.Details == null || stockInfo.Details.Count == 0) + if (stockInfo.Details.Count == 0) { return WebResponseContent.Instance.Error($"鏈壘鍒拌鎵樼洏搴撳瓨鏄庣粏淇℃伅"); } @@ -160,27 +164,32 @@ LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); - + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId== task.WarehouseId); //娴嬭瘯鏋跺叆搴撳簱瀛樼姸鎬� - if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt()) + if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() && warehouse.WarehouseCode==WarehouseEnum.HA64.ToString()) { stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚鏈缓鍑哄簱鍗�.ObjToInt(); - stockInfo.Details.ForEach(x => - { - x.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(); - }); } else { stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(); + } + stockInfo.Details.ForEach(x => + { + x.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(); + }); stockInfo.LocationCode = locationInfo.LocationCode; + //鎺ㄩ�佸叆搴撳畬鎴愮粰Erp + //鑾峰彇鍏ュ簱鍗曟洿鏂板叆搴撳崟 + //Dt_InboundOrder inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x=>x.InboundOrderNo); + if (true) + { + } _unitOfWorkManage.BeginTran(); BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚); - _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId); - _stockRepository.StockInfoRepository.UpdateData(stockInfo); _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details); _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationChangeType.InboundCompleted); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" index 5af3526..6809ade 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" @@ -11,6 +11,7 @@ using WIDESEA_TaskInfoService; using WIDESEA_DTO.ERP; using WIDESEA_DTO.MES; +using WIDESEA_Core.Helper; namespace WIDESEA_WMSServer.Controllers.MES { @@ -64,5 +65,15 @@ { return _taskService.TestScrap(model.Content); } + [HttpPost, Route("TestSynStock"), AllowAnonymous] + public WebResponseContent TestSynStock([FromBody]TestToolSynInfo toolSynInfo) + { + return _taskService.TestSynStock(toolSynInfo); + } + [HttpPost, Route("testHttp"), AllowAnonymous, MethodParamsValidate] + public string TestScrap(string str) + { + return HttpMesHelper.GetStr(str); + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" index 9390217..0df0bd4 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" @@ -12,7 +12,7 @@ "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue //杩炴帴瀛楃涓� //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", - "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", //璺ㄥ煙 "Cors": { "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О -- Gitblit v1.9.3