From 10775e2b00cee12fb4b405e18a507c629990051a Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期一, 04 八月 2025 17:26:15 +0800
Subject: [PATCH] 新增切换库位与切换货物状态功能

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs |  308 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 307 insertions(+), 1 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
index be04ba4..97c97d1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
@@ -20,12 +20,16 @@
         public IRepository<Dt_LocationInfo> Repository => BaseDal;
         private readonly IRepository<dt_storagemode> _dt_storagemode;
         private readonly IMapper _mapper;
+        private readonly IRepository<Dt_StockInfo> _stockInfoRepository;
+        private readonly IRepository<dt_batchInfo> _batchInfoRepository;
         //private readonly Idt_ErrormsginfoService _ErrormsginfoService;
 
-        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IMapper mapper) : base(BaseDal)
+        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<dt_batchInfo> batchInfoRepository, IMapper mapper) : base(BaseDal)
         {
             _dt_storagemode = storagemode;
             _mapper = mapper;
+            _stockInfoRepository = stockInfoRepository;
+            _batchInfoRepository = batchInfoRepository;
         }
 
         public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options)
@@ -40,6 +44,35 @@
             Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.Id == id);
             locationInfo.LocationStatus = locationStatus;
             locationInfo.EnableStatus = enableStatus;
+            //鏈夎揣鐢熸垚搴撳瓨淇℃伅
+            if (locationStatus == 2)
+            {
+                //鍒ゆ柇鏄惁瀛樺湪搴撳瓨淇℃伅
+                var w = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode);
+                if(w == null)
+                {
+                        Dt_StockInfo stockInfo = new Dt_StockInfo();
+                        //鏌ヨ褰撳墠闇�瑕佸嚭搴撶殑鎵规鍙凤紝浠ュ強鍑哄簱鐗╂枡绫诲瀷
+                        var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
+                        stockInfo.BatchNo = batch.OutBatch;
+                        stockInfo.Weight = 4;
+                        stockInfo.LocationCode = locationInfo.LocationCode;
+                        stockInfo.WarehouseId = 0;
+                        stockInfo.StockStatus = 0;
+                        stockInfo.Remark = 1;
+                        _stockInfoRepository.AddData(stockInfo);
+                }
+            }
+            //鏃犺揣鍒犻櫎搴撳瓨淇℃伅
+            else if(locationStatus == 0)
+            {
+                //鍒ゆ柇鏄惁瀛樺湪搴撳瓨淇℃伅
+                var w = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode);
+                if (w != null)
+                {
+                    _stockInfoRepository.DeleteData(w);
+                }
+            }
             return UpdateData(locationInfo);
             //return base.UpdateData(saveModel);
         }
@@ -262,6 +295,279 @@
             }
         }
 
+        public WebResponseContent setlocations(int k)
+        {
+            WebResponseContent content = new WebResponseContent();
+            if (k == 1)
+            {
+                List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id<=2537&&v.Id>=2526);
+                //鍒ゆ柇鏄惁鏈夎揣
+                if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock)
+                {
+                    return content.OK("2");
+                }
+                //鍓旈櫎鏀规垚姝e父
+                if (ben[0].LocationType == (int)LocationTypeEnum.Cube)
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Normal;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+                //姝e父鏀规垚鍓旈櫎
+                else
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Disable;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+            }
+            else if (k == 2)
+            {
+                List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id <= 2515 && v.Id >= 2504);
+                //鍒ゆ柇鏄惁鏈夎揣
+                if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock)
+                {
+                    return content.OK("2");
+                }
+                //鍓旈櫎鏀规垚姝e父
+                if (ben[0].LocationType == (int)LocationTypeEnum.Cube)
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Normal;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+                //姝e父鏀规垚鍓旈櫎
+                else
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Disable;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+            }
+            else if (k == 3)
+            {
+                List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id <= 2493 && v.Id >= 2482);
+                //鍒ゆ柇鏄惁鏈夎揣
+                if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock)
+                {
+                    return content.OK("2");
+                }
+                //鍓旈櫎鏀规垚姝e父
+                if (ben[0].LocationType == (int)LocationTypeEnum.Cube)
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Normal;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+                //姝e父鏀规垚鍓旈櫎
+                else
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Disable;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+            }
+            else if (k == 4)
+            {
+                List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id <= 2471 && v.Id >= 2460);
+                //鍒ゆ柇鏄惁鏈夎揣
+                if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock)
+                {
+                    return content.OK("2");
+                }
+                //鍓旈櫎鏀规垚姝e父
+                if (ben[0].LocationType == (int)LocationTypeEnum.Cube)
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Normal;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].LocationType = (int)LocationTypeEnum.Flat;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Normal;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+                //姝e父鏀规垚鍓旈櫎
+                else
+                {
+                    ben[0].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[1].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[2].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[3].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[4].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[5].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[6].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[7].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[8].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[9].EnableStatus = (int)EnableStatusEnum.Disable;
+
+                    ben[10].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].LocationType = (int)LocationTypeEnum.Cube;
+                    ben[11].EnableStatus = (int)EnableStatusEnum.Disable;
+                    BaseDal.UpdateData(ben);
+                    return content.OK("1");
+                }
+            }
+            return content.OK("4");
+        }
     }
 
     public class LocationConfig

--
Gitblit v1.9.3