From c57ec7977738765a3a813d73f20e09a89867e39b Mon Sep 17 00:00:00 2001 From: 647556386 <647556386@qq.com> Date: 星期四, 10 四月 2025 23:08:36 +0800 Subject: [PATCH] 前端页面更新 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 105 insertions(+), 5 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 252b4b0..cf79150 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" @@ -7,8 +7,11 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Dynamic; +using System.Globalization; using System.Linq; using System.Linq.Expressions; +using System.Reflection; using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; @@ -72,6 +75,39 @@ _invokeERPService = invokeERPService; _warehouseService = warehouseService; _palletTypeInfoRepository = palletTypeInfoRepository; + } + public override object GetDetailPage(PageDataOptions pageData) + { + Type t = typeof(Dt_InboundOrder); + + if (pageData.Value == null) return new PageGridData<object>(total: 0, null); + string keyName = t.GetKeyName(); + ////鐢熸垚鏌ヨ鏉′欢 + //Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal); + int totalCount = 0; + PropertyInfo propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null); + if (propertyInfo != null) + { + Type detailType = propertyInfo.PropertyType.GetGenericArguments()[0]; + Navigate navigate = propertyInfo.GetCustomAttribute<Navigate>(); + List<Dt_InboundOrderDetail> list = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(navigate.GetName(), "=", pageData.Value).ToPageList(pageData.Page, pageData.Rows, ref totalCount); + decimal sum = 0; + list.ForEach(x => + { + sum += Convert.ToDecimal(x.OrderQuantity); + }); + PageGridData<Dt_InboundOrderDetail> pageGridData = new PageGridData<Dt_InboundOrderDetail>() + { + Total= totalCount, + Rows=list, + Summary=new + { + OrderQuantity = Math.Round(sum, 3), + } + }; + return pageGridData; + } + return new PageGridData<object>(total: 0, null); } /// <summary> /// 鍏朵粬鍏ュ簱鍗曟帴鏀�(璋冩嫈鍏ヤ粨,瀹緵鍥炴敹,鐗╂枡閿�鍞��璐�) @@ -239,11 +275,11 @@ List<Dt_InboundOrder> dt_ReceiveOrders = new List<Dt_InboundOrder>(); if (string.IsNullOrEmpty(orderNo)) { - dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); + dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).Includes(x=>x.Details).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 10); } else { - dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); + dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).Includes(x => x.Details).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 10); } content.OK(data: dt_ReceiveOrders); @@ -690,6 +726,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()) { @@ -706,7 +748,6 @@ } List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList(); - if (models.Select(x => x.MaterielCode).Distinct().Count() > 1) { return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁"); @@ -823,6 +864,10 @@ stockInfoDetails.Add(stockInfoDetail); notGroupDetail.ReceiptQuantity += model.Quantity; + if (notGroupDetail.ReceiptQuantity>notGroupDetail.OrderQuantity) + { + return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{notGroupDetail.ReceiptQuantity - notGroupDetail.OrderQuantity}"); + } if (notGroupDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) { notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt(); @@ -864,7 +909,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) @@ -1016,7 +1066,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) @@ -1507,5 +1562,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