From de398f47dd12b3890c9ee545422da78e82b60fa9 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 08 十二月 2025 09:22:06 +0800
Subject: [PATCH] 修改PDA出入库中出现undefined问题,修改job中因为上游调用频率过快导致job死掉,修改前端报警信息使用不同颜色
---
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs | 431 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 429 insertions(+), 2 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs"
index 10dd800..49659cd 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs"
@@ -1,8 +1,16 @@
-锘縰sing System;
+锘縰sing SqlSugar.Extensions;
+using System;
using System.Collections.Generic;
+using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common;
+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;
using WIDESEA_IWMsInfoServices;
@@ -13,10 +21,429 @@
{
public class Inventory_BatchServices : ServiceBase<Dt_Inventory_Batch, IRepository<Dt_Inventory_Batch>>, IInventory_BatchServices
{
- public Inventory_BatchServices(IRepository<Dt_Inventory_Batch> BaseDal) : base(BaseDal)
+ private IMessageInfoService _messageInfoService;
+ private IMaterielInfoService _materielInfoService;
+ private IInventoryInfoService _inventoryInfoService;
+ private ISupplyTaskService _supplyTaskService;
+ public Inventory_BatchServices(IRepository<Dt_Inventory_Batch> BaseDal, IMessageInfoService messageInfoService, IMaterielInfoService materielInfoService, IInventoryInfoService inventoryInfoService, ISupplyTaskService supplyTaskService) : base(BaseDal)
{
+ _messageInfoService = messageInfoService;
+ _materielInfoService = materielInfoService;
+ _inventoryInfoService = inventoryInfoService;
+ _supplyTaskService = supplyTaskService;
}
public IRepository<Dt_Inventory_Batch> Repository => BaseDal;
+
+
+ /// <summary>
+ /// 璋冩嫧鍗�
+ /// </summary>
+ /// <param name="saveModel"></param>
+ /// <returns></returns>
+ //public override WebResponseContent UpdateData(SaveModel saveModel)
+ //{
+ // try
+ // {
+ // string WareCode = WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000");
+ // var qty = saveModel.MainData["availableQuantity"].ObjToInt();
+ // var id = saveModel.MainData["id"].ObjToInt();
+ // var materielCode = saveModel.MainData["materielCode"].ToString();
+ // var batchNo = saveModel.MainData["batchNo"].ToString();
+ // //var Inventory_Batch = BaseDal.QueryFirst(x => x.Id == id);
+ // //if (qty > Inventory_Batch.AvailableQuantity) throw new Exception("璋冩嫧鏁伴噺涓嶅彲澶т簬鍙敤鏁伴噺");
+ // var materielInfo = _materielInfoService.Repository.QueryFirst(x => x.MaterielCode == materielCode);
+ // if (materielInfo == null) return WebResponseContent.Instance.Error($"璇风淮鎶よ嵂鍝佺紪鍙枫�恵materielCode}銆戠殑淇℃伅");
+ // if (!Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
+ // return WebResponseContent.Instance.Error($"璇疯缃嵂鍝佺紪鍙枫�恵materielCode}銆戠殑灞炴�у垎绫�");
+ // if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)
+ // return WebResponseContent.Instance.Error($"鑽搧缂栧彿銆恵materielCode}銆戠殑灞炴�у垎绫讳负澶т欢,涓嶅彲璋冩嫧");
+ // List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.BatchNo == batchNo && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == WareCode).OrderBy(x => x.InDate).ToList();
+ // if (dt_InventoryInfos.Count < 1) return WebResponseContent.Instance.Error($"鐗╂枡缂栧彿銆恵materielInfo.MaterielCode}銆戝ぇ浠跺簱鏃犲簱瀛橈紒璇峰強鏃惰ˉ鍏呭簱瀛橈紒");
+ // var StockQty = dt_InventoryInfos.Sum(x => x.AvailableQuantity);
+ // if (StockQty < qty) return WebResponseContent.Instance.Error($"璋冩嫧鏁伴噺涓嶅彲澶т簬澶т欢搴撳彲鐢ㄦ暟閲�,澶т欢搴撳彲鐢ㄦ暟閲忎负銆恵StockQty}銆�");
+ // var zx = (qty / materielInfo.BoxQty).ObjToInt();
+ // var ys = qty % materielInfo.BoxQty;
+ // if (ys > 0) zx++;
+ // decimal Qty = 0;
+ // List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
+ // Dt_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder()
+ // {
+ // Out_no = DateTime.Now.ToString("yyMMddHHmmss"),
+ // Warehouse_no = WareCode,
+ // Out_type = OutOrderTypeEnum.Allocate.ObjToInt().ToString(),
+ // OutStatus = "鏂板缓",
+ // Details = new List<Dt_DeliveryOrderDetail>()
+ // };
+ // foreach (var item in dt_InventoryInfos)
+ // {
+ // decimal taskQty = 0;
+ // if (zx < 1) break;
+ // while (item.AvailableQuantity > 0 && zx > 0)
+ // {
+ // zx--;
+ // Qty += materielInfo.BoxQty;
+ // taskQty += materielInfo.BoxQty;
+ // materielInfo.Business_qty += materielInfo.BoxQty;
+ // item.OutboundQuantity += materielInfo.BoxQty;
+ // item.AvailableQuantity -= materielInfo.BoxQty;
+ // }
+ // #region 娣诲姞璋冩嫧鍑哄簱浠诲姟
+ // Dt_SupplyTask supplyTask = new Dt_SupplyTask()
+ // {
+ // WarehouseCode = item.WarehouseCode,
+ // BatchNo = item.BatchNo,
+ // MaterielName = item.MaterielName,
+ // MaterielCode = item.MaterielCode,
+ // MaterielSpec = item.MaterielSpec,
+ // TaskStatus = SupplyStatusEnum.NewOut.ObjToInt(),
+ // TaskType = TaskTypeEnum.AllocatOut.ObjToInt(),
+ // CreateDate = DateTime.Now,
+ // Creater = App.User.UserName ?? "System",
+ // LocationCode = item.LocationCode,
+ // OrderNo = deliveryOrder.Out_no,
+ // StockQuantity = taskQty,
+ // SupplyQuantity = 0,
+ // Remark = "璋冩嫧鍑哄簱"
+ // };
+ // supplyTasks.Add(supplyTask);
+ // #endregion
+ // }
+ // Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail()
+ // {
+ // Batch_num = batchNo,
+ // Order_Outqty = 0,
+ // Order_qty = Qty,
+ // CreateDate = DateTime.Now,
+ // Creater = App.User.UserName ?? "System",
+ // Goods_no = materielCode,
+ // OotDetailStatus = "鏂板缓",
+ // Status = 2,
+ // Reservoirarea = WareCode
+ // };
+ // deliveryOrder.Details.Add(deliveryOrderDetail);
+ // #region 娣诲姞璋冩嫧鍏ュ簱鍗�
+ // Dt_CabinOrder cabinOrder = new Dt_CabinOrder()
+ // {
+ // Order_no = deliveryOrder.Out_no,
+ // Order_type = InOrderTypeEnum.Allocat.ObjToInt().ToString(),
+ // Warehouse_no = "001",
+ // OdrderStatus = "鏂板缓",
+ // Details = new List<Dt_CabinOrderDetail>()
+ // };
+ // foreach (var item in deliveryOrder.Details)
+ // {
+ // Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail()
+ // {
+ // Reservoirarea = cabinOrder.Warehouse_no,
+ // Goods_no = item.Goods_no,
+ // Order_qty = item.Order_qty,
+ // Batch_num = item.Batch_num,
+ // OrderDetailStatus = "鏂板缓",
+ // Status = 0
+ // };
+ // cabinOrder.Details.Add(orderDetail);
+ // }
+ // #endregion
+ // Db.Ado.BeginTran();
+ // _materielInfoService.UpdateData(materielInfo);
+ // _inventoryInfoService.Repository.UpdateData(dt_InventoryInfos);
+ // _supplyTaskService.AddData(supplyTasks);
+ // if (deliveryOrder.Details.Count > 0) Db.InsertNav(deliveryOrder).Include(x => x.Details).ExecuteCommand();
+ // if (cabinOrder.Details.Count > 0) Db.InsertNav(cabinOrder).Include(x => x.Details).ExecuteCommand();
+ // Db.Ado.CommitTran();
+ // return WebResponseContent.Instance.OK("璋冩嫧鍑哄叆搴撳崟鐢熸垚鎴愬姛,璇锋搷浣滆皟鎷ㄥ崟");
+ // }
+ // catch (Exception ex)
+ // {
+ // Db.Ado.RollbackTran();
+ // return WebResponseContent.Instance.Error(ex.Message);
+ // }
+ //}
+
+
+
+ /// <summary>
+ /// 璋冩嫧鍗�
+ /// </summary>
+ /// <param name="saveModel"></param>
+ /// <returns></returns>
+ public override WebResponseContent UpdateData(SaveModel saveModel)
+ {
+ try
+ {
+ string WareCode = WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000");
+ var qty = saveModel.MainData["availableQuantity"].ObjToInt();//鐢ㄦ埛杈撳叆鐨勬暟閲�
+ var id = saveModel.MainData["id"].ObjToInt();//搴撳瓨鎵规鐨刬d
+ var materielCode = saveModel.MainData["materielCode"].ToString();
+ var batchNo = saveModel.MainData["batchNo"].ToString();
+
+ var materielInfo = _materielInfoService.Repository.QueryFirst(x => x.MaterielCode == materielCode);
+ if (materielInfo == null) return WebResponseContent.Instance.Error($"璇风淮鎶よ嵂鍝佺紪鍙枫�恵materielCode}銆戠殑淇℃伅");
+ if (!Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
+ return WebResponseContent.Instance.Error($"璇疯缃嵂鍝佺紪鍙枫�恵materielCode}銆戠殑灞炴�у垎绫�");
+ if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)
+ return WebResponseContent.Instance.Error($"鑽搧缂栧彿銆恵materielCode}銆戠殑灞炴�у垎绫讳负澶т欢,涓嶅彲璋冩嫧");
+
+ List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.BatchNo == batchNo && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == WareCode).OrderBy(x => x.InDate).ToList();
+ if (dt_InventoryInfos.Count < 1) return WebResponseContent.Instance.Error($"鐗╂枡缂栧彿銆恵materielInfo.MaterielCode}銆戝ぇ浠跺簱鏃犲簱瀛橈紒璇峰強鏃惰ˉ鍏呭簱瀛橈紒");
+
+ var StockQty = dt_InventoryInfos.Sum(x => x.AvailableQuantity);
+ if (StockQty < qty) return WebResponseContent.Instance.Error($"璋冩嫧鏁伴噺涓嶅彲澶т簬澶т欢搴撳彲鐢ㄦ暟閲�,澶т欢搴撳彲鐢ㄦ暟閲忎负銆恵StockQty}銆�");
+
+ // 妫�鏌ュぇ浠跺簱涓槸鍚﹀瓨鍦ㄦ暎浠�
+ decimal totalLooseQty = 0;
+ foreach (var inventory in dt_InventoryInfos)
+ {
+ var looseQty = inventory.AvailableQuantity % materielInfo.BoxQty;
+ if (looseQty > 0)
+ {
+ totalLooseQty += looseQty;
+ }
+ }
+
+ decimal Qty = 0; // 瀹為檯璋冩嫧鎬绘暟閲�
+ decimal businessQtyToAdd = 0; // 闇�瑕佹坊鍔犲埌涓氬姟鏁伴噺鐨勬暟閲�
+ List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
+ Dt_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder()
+ {
+ Out_no = DateTime.Now.ToString("yyMMddHHmmss"),
+ Warehouse_no = WareCode,
+ Out_type = OutOrderTypeEnum.Allocate.ObjToInt().ToString(),
+ OutStatus = "鏂板缓",
+ Details = new List<Dt_DeliveryOrderDetail>()
+ };
+
+ // 鎯呭喌1锛氬ぇ浠跺簱鏈夋暎浠讹紝涓旂敤鎴疯緭鍏ユ暟閲忓皬浜庣瓑浜庢暎浠舵�绘暟锛屼竴娆℃�ц皟鎷ㄦ墍鏈夋暎浠�
+ if (totalLooseQty > 0 && qty <= totalLooseQty)
+ {
+ decimal remainingLooseQty = totalLooseQty;
+
+ foreach (var item in dt_InventoryInfos)
+ {
+ if (remainingLooseQty <= 0) break;
+
+ var looseQty = item.AvailableQuantity % materielInfo.BoxQty;
+ if (looseQty > 0)
+ {
+ // 涓�娆℃�ц皟鎷ㄨ搴撳瓨璁板綍涓殑鎵�鏈夋暎浠�
+ item.OutboundQuantity += looseQty;
+ item.AvailableQuantity -= looseQty;
+ Qty += looseQty;
+ businessQtyToAdd += looseQty;
+ remainingLooseQty -= looseQty;
+
+ // 娣诲姞渚涘簲浠诲姟
+ Dt_SupplyTask supplyTask = new Dt_SupplyTask()
+ {
+ WarehouseCode = item.WarehouseCode,
+ BatchNo = item.BatchNo,
+ MaterielName = item.MaterielName,
+ MaterielCode = item.MaterielCode,
+ MaterielSpec = item.MaterielSpec,
+ TaskStatus = SupplyStatusEnum.NewOut.ObjToInt(),
+ TaskType = TaskTypeEnum.AllocatOut.ObjToInt(),
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName ?? "System",
+ LocationCode = item.LocationCode,
+ OrderNo = deliveryOrder.Out_no,
+ Modifier= item.ValidityPeriod,//鏁堟湡
+ StockQuantity = looseQty,
+ SupplyQuantity = 0,
+ Remark = "鏁d欢璋冩嫧鍑哄簱锛堜竴娆℃�ф竻鐞嗭級"
+ };
+ supplyTasks.Add(supplyTask);
+ }
+ }
+ }
+ // 鎯呭喌2锛氬ぇ浠跺簱鏈夋暎浠讹紝浣嗙敤鎴疯緭鍏ユ暟閲忓ぇ浜庢暎浠舵�绘暟锛屾垨鑰呭ぇ浠跺簱娌℃湁鏁d欢锛屾寜鍘熸潵鏁寸閫昏緫
+ else
+ {
+ // 濡傛灉澶т欢搴撴湁鏁d欢浣嗙敤鎴疯璋冩嫧鏇村锛屽厛娓呯悊鏁d欢
+ decimal allocatedLooseQty = 0;
+ if (totalLooseQty > 0)
+ {
+ foreach (var item in dt_InventoryInfos)
+ {
+ var looseQty = item.AvailableQuantity % materielInfo.BoxQty;
+ if (looseQty > 0)
+ {
+ // 涓�娆℃�ц皟鎷ㄨ搴撳瓨璁板綍涓殑鎵�鏈夋暎浠�
+ item.OutboundQuantity += looseQty;
+ item.AvailableQuantity -= looseQty;
+ allocatedLooseQty += looseQty;
+ Qty += looseQty;
+ businessQtyToAdd += looseQty;
+
+ // 娣诲姞渚涘簲浠诲姟
+ Dt_SupplyTask supplyTask = new Dt_SupplyTask()
+ {
+ WarehouseCode = item.WarehouseCode,
+ BatchNo = item.BatchNo,
+ MaterielName = item.MaterielName,
+ MaterielCode = item.MaterielCode,
+ MaterielSpec = item.MaterielSpec,
+ TaskStatus = SupplyStatusEnum.NewOut.ObjToInt(),
+ TaskType = TaskTypeEnum.AllocatOut.ObjToInt(),
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName ?? "System",
+ LocationCode = item.LocationCode,
+ OrderNo = deliveryOrder.Out_no,
+ StockQuantity = looseQty,
+ Modifier = item.ValidityPeriod,//鏁堟湡
+ SupplyQuantity = 0,
+ Remark = "鏁d欢璋冩嫧鍑哄簱锛堜竴娆℃�ф竻鐞嗭級"
+ };
+ supplyTasks.Add(supplyTask);
+ }
+ }
+ }
+
+ // 璁$畻杩橀渶瑕佽皟鎷ㄧ殑鏁寸鏁伴噺
+ var remainingQty = qty - allocatedLooseQty;
+ if (remainingQty > 0)
+ {
+ var zx = (int)Math.Ceiling((decimal)remainingQty / materielInfo.BoxQty); // 闇�瑕佺殑鏁寸鏁�
+
+ foreach (var item in dt_InventoryInfos)
+ {
+ decimal taskQty = 0;
+ if (zx < 1) break;
+
+ // 璁$畻褰撳墠搴撳瓨鍙彁渚涚殑瀹屾暣绠辨暟
+ var availableFullBoxes = item.AvailableQuantity / materielInfo.BoxQty;
+ var boxesToTransfer = Math.Min(availableFullBoxes, zx);
+
+ if (boxesToTransfer > 0)
+ {
+ var transferQty = boxesToTransfer * materielInfo.BoxQty;
+ taskQty += transferQty;
+ Qty += transferQty;
+ businessQtyToAdd += transferQty;
+ zx -= (int)boxesToTransfer;
+
+ item.OutboundQuantity += transferQty;
+ item.AvailableQuantity -= transferQty;
+
+ // 娣诲姞渚涘簲浠诲姟
+ Dt_SupplyTask supplyTask = new Dt_SupplyTask()
+ {
+ WarehouseCode = item.WarehouseCode,
+ BatchNo = item.BatchNo,
+ MaterielName = item.MaterielName,
+ MaterielCode = item.MaterielCode,
+ MaterielSpec = item.MaterielSpec,
+ TaskStatus = SupplyStatusEnum.NewOut.ObjToInt(),
+ TaskType = TaskTypeEnum.AllocatOut.ObjToInt(),
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName ?? "System",
+ LocationCode = item.LocationCode,
+ OrderNo = deliveryOrder.Out_no,
+ Modifier = item.ValidityPeriod,//鏁堟湡
+ StockQuantity = taskQty,
+ SupplyQuantity = 0,
+ Remark = "鏁寸璋冩嫧鍑哄簱"
+ };
+ supplyTasks.Add(supplyTask);
+ }
+ }
+
+ // 妫�鏌ユ暣绠辨暟閲忔槸鍚﹁冻澶�
+ if (zx > 0)
+ {
+ return WebResponseContent.Instance.Error($"鏁寸搴撳瓨涓嶈冻锛屾棤娉曞畬鎴愯皟鎷ㄣ�傝繕闇�瑕亄zx}绠�");
+ }
+ }
+ }
+
+ // 鏇存柊涓氬姟鏁伴噺锛氫笟鍔℃暟閲� = 鍘熸潵鐨勪笟鍔℃暟閲� + 瀹為檯璋冩嫧鎬绘暟閲�
+ materielInfo.Business_qty += businessQtyToAdd;
+
+ // 娣诲姞鍑哄簱鍗曟槑缁�
+ Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail()
+ {
+ Batch_num = batchNo,
+ Order_Outqty = 0,
+ Order_qty = Qty,
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName ?? "System",
+ Goods_no = materielCode,
+ OotDetailStatus = "鏂板缓",
+ Status = 2,
+ Reservoirarea = WareCode
+ };
+ deliveryOrder.Details.Add(deliveryOrderDetail);
+
+ // 娣诲姞璋冩嫧鍏ュ簱鍗�
+ Dt_CabinOrder cabinOrder = new Dt_CabinOrder()
+ {
+ Order_no = deliveryOrder.Out_no,
+ Order_type = InOrderTypeEnum.Allocat.ObjToInt().ToString(),
+ Warehouse_no = "001",
+ OdrderStatus = "鏂板缓",
+ Details = new List<Dt_CabinOrderDetail>()
+ };
+ foreach (var item in deliveryOrder.Details)
+ {
+ Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail()
+ {
+ Reservoirarea = cabinOrder.Warehouse_no,
+ Goods_no = item.Goods_no,
+ Order_qty = item.Order_qty,
+ Batch_num = item.Batch_num,
+ OrderDetailStatus = "鏂板缓",
+ Status = 0
+ };
+ cabinOrder.Details.Add(orderDetail);
+ }
+
+ Db.Ado.BeginTran();
+ _materielInfoService.UpdateData(materielInfo);
+ _inventoryInfoService.Repository.UpdateData(dt_InventoryInfos);
+ _supplyTaskService.AddData(supplyTasks);
+ if (deliveryOrder.Details.Count > 0) Db.InsertNav(deliveryOrder).Include(x => x.Details).ExecuteCommand();
+ if (cabinOrder.Details.Count > 0) Db.InsertNav(cabinOrder).Include(x => x.Details).ExecuteCommand();
+ Db.Ado.CommitTran();
+
+ return WebResponseContent.Instance.OK($"璋冩嫧鍑哄叆搴撳崟鐢熸垚鎴愬姛锛佸疄闄呰皟鎷ㄦ暟閲忥細{(int)Qty}");
+ }
+ catch (Exception ex)
+ {
+ Db.Ado.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
+
+
+ /// <summary>
+ /// 搴撳瓨杩囨湡棰勮
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent GetExpiredAndlow()
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ DateTime dateTime = DateTime.Now.AddDays(30).Date;
+ DateTime dateTime60 = DateTime.Now.AddDays(60).Date;
+ DateTime dateTime180 = DateTime.Now.AddDays(180).Date;
+
+
+ List<Dt_Inventory_Batch> inventory_Batches = BaseDal.QueryData(x => x.ValidityPeriod < dateTime || x.ValidityPeriod<dateTime60 || x.ValidityPeriod < dateTime180).ToList();
+ foreach (var item in inventory_Batches)
+ {
+ var day = (item.ValidityPeriod - DateTime.Now).Days;
+ string d = $"杩樻湁{day}澶╄繃鏈�";
+ if (day < 0) d = $"宸茶繃鏈焮Math.Abs(day)}澶�";
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryExceedAlarm, "鐗╂枡鍚嶇О:" + item.MaterielName, $"鐗╂枡缂栧彿銆恵item.MaterielCode}銆戠墿鏂欐壒娆°�恵item.BatchNo}銆憑d}", messageRemark: $"鐗╂枡缂栧彿銆恵item.MaterielCode}銆戠墿鏂欐壒娆°�恵item.BatchNo}銆�");
+ }
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
}
}
--
Gitblit v1.9.3