From 3a1a5e58e9ac1b4a8449601db8c6608897877746 Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期五, 21 三月 2025 11:26:12 +0800 Subject: [PATCH] 界面更新 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 134 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 127 insertions(+), 7 deletions(-) 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 4d71ad1..8d1ef05 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" @@ -2,9 +2,12 @@ using HslCommunication.WebSocket; using Microsoft.AspNetCore.Mvc.RazorPages; using Newtonsoft.Json; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using SqlSugar; using System; +using System.Collections; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Linq.Expressions; using System.Reflection.Metadata; @@ -41,6 +44,7 @@ using WIDESEA_ITaskInfoService; using WIDESEA_Model.Models; using WIDESEA_StockRepository; +using static Org.BouncyCastle.Pqc.Crypto.Utilities.PqcOtherInfoGenerator; namespace WIDESEA_InboundService { @@ -556,7 +560,7 @@ } else { - FeedbackInboundOrder(inboundOrder); + FeedbackInboundOrder(inboundOrder.Id); } } #endregion @@ -687,6 +691,12 @@ return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅"); } List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums); + //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡 + WebResponseContent IsValidContent = IsValidMCDates(models); + if (!IsValidContent.Status) + { + return content.Error(IsValidContent.Message); + } //闄ら噰璐叆搴撳崟浠ュ鍏朵粬鍏ュ簱鍗曠粍鐩樻暟鎹鐞� if (inboundOrder.OrderType != InOrderTypeEnum.Purchase.ObjToInt()) { @@ -703,7 +713,6 @@ } List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList(); - if (models.Select(x => x.MaterielCode).Distinct().Count() > 1) { return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁"); @@ -861,7 +870,12 @@ { return content.Error($"鐗╂枡涓嶅彲娣锋斁"); } - + //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡 + WebResponseContent IsValidContent = IsValidMCDates(models); + if (!IsValidContent.Status) + { + return content.Error(IsValidContent.Message); + } string materielCode = models.FirstOrDefault()?.MaterielCode ?? ""; Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode); if (materielInfo == null) @@ -1013,7 +1027,12 @@ { return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁"); } - + //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡 + WebResponseContent IsValidContent = IsValidMCDates(models); + if (!IsValidContent.Status) + { + return content.Error(IsValidContent.Message); + } string materielCode = models.FirstOrDefault()?.MaterielCode ?? ""; Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode); if (materielInfo == null) @@ -1131,11 +1150,12 @@ /// 鍏ュ簱瀹屾垚涓婃姤ERP /// </summary> /// <returns></returns> - public WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder) + public WebResponseContent FeedbackInboundOrder(int inboundOrderId) { WebResponseContent content = new WebResponseContent(); try { + Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderId).Includes(x => x.Details).First(); if (inboundOrder.Details.Count == 0) { return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅"); @@ -1232,11 +1252,11 @@ .Select(mg => new ReturnPickItem { Material = mg.Key, - Qty = mg.Sum(x => x.Qty), + Qty = mg.Sum(x => x.ReturnQty), Dataitem = mg.Select(d => new ReturnDataItem { Lotno = d.BatchNo, - Qty = d.Qty, + Qty = d.ReturnQty, Location = warehouse.WarehouseCode, Msfpart = d.Code }).ToList() @@ -1256,6 +1276,61 @@ }; _invokeERPService.InvokeReturnApi(returnModel); return content.OK(); + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + /// <summary> + /// 鎴愬搧鍏ュ簱涓婁紶ERP + /// </summary> + public WebResponseContent FeedbackProIn(Dt_MesProInOrder mesProInOrder) + { + WebResponseContent content = new WebResponseContent(); + try + { + List<ERPProItemsItem> proItemsItems = new List<ERPProItemsItem>(); + foreach (var item in mesProInOrder.Details) + { + ERPProItemsItem proItemsItem = new ERPProItemsItem() + { + PartNum = item.ProductCode, + Rev=item.ProductVersion, + DateCode=item.DateCode, + BatchNumber= item.BagNo, + XLocation=item.XSite, + Xqty=item.XQty, + QtySet=item.SETQty, + QtyPcs=item.OKPCSQTY, + WoList=new List<ERPProListItem>() + { + new ERPProListItem() + { + moNumber=item.MoNumber, + WoNumber=item.ERPOrder, + QtyPcs=item.OKPCSQTY, + QtySet=item.SETQty + } + } + }; + proItemsItems.Add(proItemsItem); + } + ERPProInboundModel proInboundModel = new ERPProInboundModel() + { + Way = 1, + Code = mesProInOrder.ProInOrderNo, + CreatorCode = "GSWMS", + CompanyCode = "HATC", + FactoryCode = "HA02", + WarehouseCode = "HA71", + LocationCode = "HA71", + StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + StockFormType= "Production", + StockFormItems= proItemsItems + }; + _invokeERPService.InvokeProInApi(proInboundModel); } catch (Exception ex) { @@ -1448,5 +1523,50 @@ } return -1; } + /// <summary> + /// 鍒ゆ柇姝g‘鏃堕棿鏍煎紡 + /// </summary> + public WebResponseContent IsValidMCDates(List<MatSerNumAnalysisModel> analysisModels) + { + string[] effDates = analysisModels.Select(x => x.EffectiveDate).Distinct().ToArray(); + string[] ProDates = analysisModels.Select(x => x.ProductionDate).Distinct().ToArray(); + foreach (string effDate in effDates) + { + string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡 + DateTime parsedDate; + // 瑙f瀽骞堕獙璇佹牸寮� + bool isValid = DateTime.TryParseExact( + effDate, + format, + CultureInfo.InvariantCulture, + DateTimeStyles.None, + out parsedDate + ); + + if (!isValid) + { + return WebResponseContent.Instance.Error("鏍煎紡鏃犳晥鎴栨棩鏈熶笉鍚堟硶"); + } + } + foreach (string ProDate in ProDates) + { + string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡 + DateTime parsedDate; + // 瑙f瀽骞堕獙璇佹牸寮� + bool isValid = DateTime.TryParseExact( + ProDate, + format, + CultureInfo.InvariantCulture, + DateTimeStyles.None, + out parsedDate + ); + + if (!isValid) + { + return WebResponseContent.Instance.Error("鏍煎紡鏃犳晥鎴栨棩鏈熶笉鍚堟硶"); + } + } + return WebResponseContent.Instance.OK(); + } } } -- Gitblit v1.9.3