From 9a0acba23c5b5095be2a89b8ca190fe5202c2ea6 Mon Sep 17 00:00:00 2001
From: duyongjia <adu_555@163.com>
Date: 星期日, 29 十二月 2024 15:58:45 +0800
Subject: [PATCH] 最新修改

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockInfoRepository.cs |  159 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 156 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockInfoRepository.cs"
index 3c140a4..f172178 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockInfoRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockInfoRepository.cs"
@@ -1,6 +1,7 @@
-锘縰sing Org.BouncyCastle.Crypto;
+锘縰sing Newtonsoft.Json;
+using Org.BouncyCastle.Crypto;
 using SqlSugar;
-using SqlSugar.Extensions;
+//using SqlSugar.Extensions;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -8,17 +9,24 @@
 using System.Threading.Tasks;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.Enums;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO.Inbound;
 using WIDESEA_DTO.Stock;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IStockRepository;
+using WIDESEA_Model;
 using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.System.Reponse;
+using WIDESEA_Model.Models.System.Request;
 
 namespace WIDESEA_StockRepository
 {
     public class StockInfoRepository : RepositoryBase<Dt_StockInfo>, IStockInfoRepository
     {
-        public StockInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        private readonly ILabelMasterRepository _labelMasterRepository;
+        public StockInfoRepository(IUnitOfWorkManage unitOfWorkManage,ILabelMasterRepository labelMasterRepository) : base(unitOfWorkManage)
         {
+            _labelMasterRepository = labelMasterRepository;
         }
 
         public List<StockViewDTO> GetAllStockViews()
@@ -63,6 +71,16 @@
             //ISugarQueryable<Dt_LocationInfo> sugarQueryable = Db.Queryable<Dt_LocationInfo>();
             //ISugarQueryable<Dt_StockInfo> sugarQueryable1 = Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.Details.Any(v => v.MaterielCode == materielCode));
             //return sugarQueryable.InnerJoin(sugarQueryable1, (a, b) => a.LocationCode == b.LocationCode).Select((a, b) => b).Includes(x => x.Details).ToList();
+        }
+
+        /// <summary>
+        /// 鏍规嵁鎵规鍙峰拰鐗╂枡缂栫爜鑾峰彇搴撳瓨淇℃伅
+        /// </summary>
+        /// <param name="materielCode"></param>
+        /// <returns></returns>
+        public List<Dt_StockInfo> GetStockInfos(string materielCode,string batchNo)
+        {
+            return Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.Details.Any(v => v.MaterielCode == materielCode&&v.BatchNo==batchNo)).ToList();       
         }
 
         public List<Dt_StockInfo> GetStockInfos(string materielCode, List<string> locationCodes)
@@ -112,5 +130,140 @@
                 return Db.Queryable<Dt_StockInfo>().Where(x => x.StockStatus == StockStatusEmun.宸插叆搴�.ObjToInt() && x.PalletCode.Substring(0, 1) == "B" && SqlFunc.Subqueryable<Dt_LocationInfo>().Where(v => v.LocationCode == x.LocationCode && v.RoadwayNo == roadwayNo && v.LocationStatus == LocationStatusEnum.Pallet.ObjToInt() && (EnableStatusEnum.Normal.ObjToInt() == v.EnableStatus)).Any()).OrderBy(x => x.ModifyDate).First();
             }
         }
+
+
+        /// <summary>
+        /// 绔嬪簱WMS搴撳瓨淇℃伅鎺ュ彛锛屼緵涓婃父绯荤粺璋冪敤
+        /// </summary>
+        /// <param name="inventoryQueryRequest"></param>
+        /// <returns></returns>
+        public InventoryQueryResponse InventoryQuery(string inventoryQueryRequeststr)
+        {
+            InventoryQueryResponse inventoryQueryResponse = new InventoryQueryResponse();
+            try
+            {
+                InventoryQueryRequest inventoryQueryRequest = JsonConvert.DeserializeObject<InventoryQueryRequest>(inventoryQueryRequeststr);
+                if (inventoryQueryRequest != null)
+                {
+                    List<StockItem> DATA = new List<StockItem>();
+                    inventoryQueryResponse.DATA = DATA;
+                    List<StockViewDTO> stockviews = GetAllStockViews();
+                    foreach (var view in stockviews)
+                    {
+                        foreach (var detail in view.Details)
+                        {
+                            Dt_LabelMaster labelMaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber);
+                            StockItem stockItem = new StockItem();
+                            stockItem.BATCH = detail.BatchNo;
+                            stockItem.LABEL_NO = detail.SerialNumber;
+                            stockItem.LGORT = "0030";//搴撲綅
+                            if (labelMaster != null)
+                            {
+                                if (labelMaster.WH_NUMBER == inventoryQueryRequest.DATA[0].WH_NUMBER && labelMaster.WERKS == inventoryQueryRequest.DATA[0].WH_NUMBER)
+                                {
+                                    stockItem.LIFNR = labelMaster.LIFNR;
+                                    stockItem.LIKTX = labelMaster.LIKTX;
+                                    stockItem.LK_BIN_CODE = view.LocationCode;
+                                    stockItem.MAKTX = labelMaster.MAKTX;
+                                    stockItem.MATNR = labelMaster.MATNR;
+                                    stockItem.MEINS = labelMaster.UNIT;
+                                    stockItem.QTY = labelMaster.BOX_QTY;
+                                    stockItem.SOBKZ = labelMaster.SOBKZ;
+                                    stockItem.TPNUM = view.PalletCode;
+                                    stockItem.WERKS = labelMaster.WERKS;//宸ュ巶
+                                    stockItem.WH_NUMBER = labelMaster.WH_NUMBER;//浠撳簱鍙�
+                                    DATA.Add(stockItem);
+                                }
+                            }
+                        }
+                    }
+                    if (DATA.Count > 0)
+                    {
+                        inventoryQueryResponse.MSGTY = "S";
+                        inventoryQueryResponse.MSGTX = "";
+                    }
+                    else
+                    {
+                        inventoryQueryResponse.MSGTY = "I";
+                        inventoryQueryResponse.MSGTX = "";
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                inventoryQueryResponse.MSGTY = "E";
+                inventoryQueryResponse.MSGTX = ex.Message;
+
+            }
+            return inventoryQueryResponse;
+
+        }
+
+        /// <summary>
+        /// 绔嬪簱WMS鍐荤粨/瑙e喕淇℃伅鎺ュ彛锛屼緵涓婃父绯荤粺璋冪敤
+        /// </summary>
+        /// <param name="freezeByCustomerResponse"></param>
+        /// <returns></returns>
+        public freezeByCustomerResponse freezeByCustomer(string  freezeRequeststr)
+        {
+          
+            freezeByCustomerResponse freezeResponse = new freezeByCustomerResponse();
+            try
+            {
+                freezeByCustomerRequest freezeRequest = JsonConvert.DeserializeObject<freezeByCustomerRequest>(freezeRequeststr);
+                if (freezeRequest.WERKS == AppSettings.Configuration["WERKS"] && freezeRequest.WH_NUMBER == AppSettings.Configuration["SYSNO"])
+                {
+                    //鏍规嵁鎵规鍜岀墿鏂欏彿鏌ユ壘瀵瑰簲鐨勬墭鐩樺彿锛屽喕缁撳簱瀛橈紝鍙湁鍏ュ簱鎴愬姛浜嗭紝鎵嶈兘琚喕缁�
+                    List<Dt_StockInfo> stockInfos = GetStockInfos(freezeRequest.MATNR, freezeRequest.BATCH);
+                    if (freezeRequest.FREEZE_TYPE == "00")//00鍐荤粨 
+                    {
+                        foreach (var item in stockInfos)
+                        {
+                            if (item.StockStatus == (int)StockStatusEmun.宸插叆搴�)
+                            {
+                                item.StockStatus = (int)StockStatusEmun.鍑哄簱鍐荤粨;
+                                UpdateData(item);
+                            }
+                        }
+                        freezeResponse.MSGTY = "S";
+                        freezeResponse.MSGTX = "";
+                    }
+                    else if (freezeRequest.FREEZE_TYPE == "01") //01瑙e喕
+                    {
+                        foreach (var item in stockInfos)
+                        {
+                            if (item.StockStatus == (int)StockStatusEmun.鍑哄簱鍐荤粨)
+                            {
+                                item.StockStatus = (int)StockStatusEmun.宸插叆搴�;
+                                UpdateData(item);
+                            }
+                        }
+                        freezeResponse.MSGTY = "S";
+                        freezeResponse.MSGTX = "";
+
+                    }
+                    else
+                    {
+                        freezeResponse.MSGTY = "E";
+                        freezeResponse.MSGTX = "涓嶆敮鎸佽涓氬姟绫诲瀷";
+                    }
+                }
+                else
+                {
+                    freezeResponse.MSGTY = "E";
+                    freezeResponse.MSGTX = "璇蜂紶鍏ユ纭殑宸ュ巶鍙峰拰浠撳簱鍙�";
+
+                }
+
+            }
+            catch (Exception ex)
+            {
+                freezeResponse.MSGTY = "E";
+                freezeResponse.MSGTX = ex.Message;
+
+            }
+            return freezeResponse;
+
+        }
     }
 }

--
Gitblit v1.9.3