From 2920728d7908da2ee196f3af8b3d1c635696e9a1 Mon Sep 17 00:00:00 2001
From: zwc <526854230@qq.com>
Date: 星期三, 15 一月 2025 15:47:15 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/DataServer/StockServer.cs |  215 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 193 insertions(+), 22 deletions(-)

diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs
index 90c2d75..83d3b68 100644
--- a/Wms/WMS.BLL/DataServer/StockServer.cs
+++ b/Wms/WMS.BLL/DataServer/StockServer.cs
@@ -7,11 +7,14 @@
 using System.Text;
 using Model.ModelDto;
 using Model.ModelDto.DataDto;
+using Model.ModelDto.SysDto;
 using Model.ModelVm.DataVm;
 using SqlSugar;
 using WMS.DAL;
+using WMS.Entity.BllSoEntity;
 using WMS.Entity.Context;
 using WMS.Entity.DataEntity;
+using WMS.Entity.LogEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.IDataServer;
 
@@ -129,16 +132,23 @@
         /// <param name="palletNo">鎵樼洏鏉$爜</param>
         /// <param name="status">搴撳瓨鐘舵��</param>
         /// <param name="inspectStatus">璐ㄦ鐘舵��</param>
+        /// <param name="houseNo">鎵�灞炰粨搴�</param>
+        /// <param name="areaNo">鎵�灞炲尯鍩�</param>
+        /// <param name="type">鐗╂枡绫诲瀷</param>
+        /// <param name="ownerNo">璐т富缂栧彿</param>
+        /// <param name="ownerName">璐т富鍚嶇О</param>
         /// <returns></returns>
         public List<StockDetailDto> GetInventoryList1(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, 
-            string status, string inspectStatus, string ownerNo, string ownerName)
+            string status, string inspectStatus, string ownerNo, string ownerName, string houseNo, string areaNo, string categoryNo, string type)
         {
-            string str = "select detail.*,house.WareHouseNo + '-' + house.WareHouseName as WareHouseName," +
+            string str = "select detail.*,sku.Type,house.WareHouseNo + '-' + house.WareHouseName as WareHouseName," +
                 "roadway.RoadwayNo + '-' + roadway.RoadwayName as RoadwayName,area.AreaNo + '-' + area.AreaName as AreaName  " +
                 "from DataStockDetail detail " +
                 "left join SysStorageRoadway roadway on detail.RoadwayNo = roadway.RoadwayNo " +
                 "left join SysWareHouse house on detail.WareHouseNo = house.WareHouseNo " +
                 "left join SysStorageArea area on detail.AreaNo = area.AreaNo " +
+                "left join SysMaterials as sku on detail.skuNo = sku.skuNo " +
+                "left join SysMaterialCategory as cat on sku.CategoryNo = cat.CategoryNo " +
                 "Where detail.IsDel = @isdel";
             //鍒ゆ柇鐗╂枡缂栫爜鏄惁涓虹┖
             if (!string.IsNullOrEmpty(skuNo))
@@ -184,21 +194,42 @@
             if (!string.IsNullOrEmpty(ownerName))
             {
                 str += " and detail.OwnerName like @ownerName";
+            }   
+            if (!string.IsNullOrEmpty(houseNo))     
+            {
+                str += " and house.WareHouseNo = @wareHouseNo";
             }
+            if (!string.IsNullOrEmpty(areaNo))
+            {
+                str += " and area.AreaNo = @areaNo";
+            }
+            if (!string.IsNullOrEmpty(categoryNo))
+            {
+                str += " and cat.CategoryNo = @categoryNo";
+            }
+            if (!string.IsNullOrEmpty(type))
+            {
+                str += " and sku.Type = @type";
+            }
+
             //鎺掑簭
             str += " order by detail.SkuNo,detail.PalletNo,detail.LotNo";
             List<StockDetailDto> stockDetailsList = Db.Ado.SqlQuery<StockDetailDto>(str, new
             {
-                isdel = "0", //鏄惁鍒犻櫎
-                skuno = "%" + skuNo + "%", //鐗╂枡缂栫爜
-                skuname = "%" + skuName + "%", //鐗╂枡鍚嶇О
-                lotno = "%" + lotNo + "%", //鎵规
-                locatno = "%" + locatNo + "%", //鍌ㄤ綅鍦板潃
-                palletno = "%" + palletNo + "%", //鎵樼洏鏉$爜
-                status = status, //搴撳瓨鐘舵��
-                inspectstatus = inspectStatus, //璐ㄦ鐘舵��
-                ownerNo = "%" + ownerNo + "%", //璐т富缂栫爜
-                ownerName = "%" + ownerName + "%" //璐т富鍚嶇О
+                isdel = "0",                                //鏄惁鍒犻櫎
+                skuno = "%" + skuNo + "%",                  //鐗╂枡缂栫爜
+                skuname = "%" + skuName + "%",              //鐗╂枡鍚嶇О
+                lotno = "%" + lotNo + "%",                  //鎵规
+                locatno = "%" + locatNo + "%",              //鍌ㄤ綅鍦板潃
+                palletno = "%" + palletNo + "%",            //鎵樼洏鏉$爜
+                status = status,                            //搴撳瓨鐘舵��
+                inspectstatus = inspectStatus,              //璐ㄦ鐘舵��
+                ownerNo = "%" + ownerNo + "%",              //璐т富缂栫爜
+                ownerName = "%" + ownerName + "%",          //璐т富鍚嶇О
+                wareHouseNo = houseNo,                      
+                areaNo = areaNo,                         //鎵�灞炲尯鍩�
+                categoryNo = categoryNo,                //閫昏緫搴撳尯
+                type = type
             });
             return stockDetailsList;
         }
@@ -380,7 +411,7 @@
                 "where bind.IsDel = '0' and notice.IsDel = '0' and bind.LotNo in (select LotNo from DataStock where IsDel = '0')   ";
             //鍑哄簱
             string cstr = "select notice.SONo,allot.LotNo,allot.TaskNo CTaskNo,allot.SkuNo,allot.SkuName,allot.PalletNo," +
-                "allot.CreateTime CCreateTime,allot.Qty CQty,allot.Qty CAllotQty,Allot.Qty CFactQty,Allot.CompleteQty CompleteQty," +
+                "allot.UpdateTime CCreateTime,allot.Qty CQty,allot.Qty CAllotQty,Allot.Qty CFactQty,Allot.CompleteQty CompleteQty," +
                 "allot.LotText,allot.SupplierLot " +
                 "from BllExportAllot allot left join BllExportNoticeDetail notice on allot.SODetailNo = notice.Id " +
                 "where allot.IsDel = '0' and notice.IsDel = '0' " +
@@ -571,7 +602,7 @@
                 {
                     EndTime = (Convert.ToDateTime(EndTime).AddDays(1)).ToString();
                 }
-                int countjie = 0; //缁熻缁撳瓨鏁伴噺
+                decimal countjie = 0; //缁熻缁撳瓨鏁伴噺
                 ////鍒ゆ柇搴撳瓨淇℃伅鏄惁涓虹┖
                 //if (stockInfo != null)
                 //{
@@ -596,10 +627,10 @@
                     }
 
                 //}
-                int yeara = 0; //骞村叆搴�
-                int years = 0; //骞村嚭搴�
-                int montha = 0; //鏈堝叆搴�
-                int months = 0; //鏈堝嚭搴�
+                decimal yeara = 0; //骞村叆搴�
+                decimal years = 0; //骞村嚭搴�
+                decimal montha = 0; //鏈堝叆搴�
+                decimal months = 0; //鏈堝嚭搴�
                 DateTime createTime = DateTime.Now.AddYears(-1000); //鏃堕棿
 
                 //鑾峰彇鏈夊灏戝勾
@@ -839,10 +870,12 @@
                         //鍒ゆ柇鐗╂枡鏄惁鐩稿悓
                         if (dto.SkuNo == item.SkuNo)
                         {
-                            dto.Qty = (Convert.ToInt32(dto.Qty) + Convert.ToInt32(item.Qty)).ToString();
-                            dto.FrozenQty = (Convert.ToInt32(dto.FrozenQty) + Convert.ToInt32(item.FrozenQty)).ToString();
-                            dto.LockQty = (Convert.ToInt32(dto.LockQty) + Convert.ToInt32(item.LockQty)).ToString();
-                            dto.ResidueQty = (Convert.ToInt32(dto.ResidueQty) + Convert.ToInt32(item.ResidueQty)).ToString();
+                            var s = Convert.ToDecimal(dto.Qty) ;
+                            var ss = Convert.ToDecimal(item.Qty);
+                            dto.Qty = (Convert.ToDecimal(dto.Qty) + Convert.ToDecimal(item.Qty)).ToString();
+                            dto.FrozenQty = (Convert.ToDecimal(dto.FrozenQty) + Convert.ToDecimal(item.FrozenQty)).ToString();
+                            dto.LockQty = (Convert.ToDecimal(dto.LockQty) + Convert.ToDecimal(item.LockQty)).ToString();
+                            dto.ResidueQty = (Convert.ToDecimal(dto.ResidueQty) + Convert.ToDecimal(item.ResidueQty)).ToString();
                             break;
                         }
                         i += 1;
@@ -990,5 +1023,143 @@
             return stockDetailsList;
         }
         #endregion
+
+        #region AGV灏忚溅浠诲姟瀹屾垚
+
+        /// <summary>
+        /// AGV鍏ュ簱瀹屾垚
+        /// </summary>
+        /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <returns></returns>
+        public void ArriveFinish(string TaskCode)
+        {
+            try
+            {
+                var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "0");//鑾峰彇浠诲姟淇℃伅
+                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo);
+                //寮�鍚簨鍔�
+                Db.BeginTran();
+               
+                //淇敼璧峰搴撲綅鐘舵��
+                storageLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                Db.Updateable(storageLocat).ExecuteCommand();
+
+                //淇敼浠诲姟鐘舵��
+                palletNo.Status = "2";   //宸插畬鎴�
+                Db.Updateable(palletNo).ExecuteCommand();
+
+                //淇敼搴撳瓨鏄庣粏
+                stockDetail.Status = "0";//寰呭垎閰�
+                stockDetail.LocatNo = "";
+                stockDetail.AreaNo = "";
+                stockDetail.RoadwayNo = "";
+                stockDetail.WareHouseNo = "";
+                Db.Updateable(stockDetail).ExecuteCommand();
+
+                //涓嬪彂WCS鐢宠鍏ュ簱
+
+
+                Db.CommitTran();
+
+            }
+            catch (Exception ex)
+            {
+
+                throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex);
+            }
+        }
+
+        /// <summary>
+        /// AGV鍑哄簱瀹屾垚
+        /// </summary>
+        /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <returns></returns>
+        public void SoFinish(string TaskCode)
+        {
+            try
+            {
+                var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "1");//鑾峰彇浠诲姟淇℃伅
+                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅
+                var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //鑾峰彇搴撳瓨淇℃伅
+
+                //寮�鍚簨鍔�
+                Db.BeginTran();
+                //淇敼鐩殑搴撲綅鐘舵��
+                storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                Db.Updateable(storageLocat).ExecuteCommand();
+
+                //淇敼浠诲姟鐘舵��
+                palletNo.Status = "2";   //宸插畬鎴�
+                Db.Updateable(palletNo).ExecuteCommand();
+
+                //淇敼搴撳瓨鏄庣粏
+                stockDetail.Status = "2";// 0:寰呭垎閰�   1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾
+                stockDetail.LocatNo = storageLocat.LocatNo;
+                stockDetail.AreaNo = storageLocat.AreaNo;
+                stockDetail.RoadwayNo = storageLocat.RoadwayNo;
+                stockDetail.WareHouseNo = storageLocat.WareHouseNo;
+                Db.Updateable(stockDetail).ExecuteCommand();
+
+
+                Db.CommitTran();
+
+            }
+            catch (Exception ex )
+            {
+
+                throw new Exception("AGV杩斿洖鍑哄簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex);
+            }
+        }
+
+        /// <summary>
+        /// AGV绉诲簱瀹屾垚
+        /// </summary>
+        /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <returns></returns>
+        public void MoveFinish(string TaskCode)
+        {
+            try
+            {
+                var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "3");//鑾峰彇浠诲姟淇℃伅
+                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅
+                var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //鑾峰彇搴撳瓨淇℃伅
+                //var soAllot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo);//鑾峰彇鍒嗛厤淇℃伅
+                
+                
+                //寮�鍚簨鍔�
+                Db.BeginTran();
+                //淇敼璧峰搴撲綅鐘舵��
+                storageLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                Db.Updateable(storageLocat).ExecuteCommand();
+
+                //淇敼鐩殑搴撲綅鐘舵��
+                storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                Db.Updateable(storageLocat).ExecuteCommand();
+
+                //淇敼浠诲姟鐘舵��
+                palletNo.Status = "2";   //宸插畬鎴�
+                Db.Updateable(palletNo).ExecuteCommand();
+
+                //淇敼搴撳瓨鏄庣粏
+                stockDetail.Status = "2";// 0:寰呭垎閰�   1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾
+                stockDetail.LocatNo = storageLocat.LocatNo;
+                stockDetail.AreaNo = storageLocat.AreaNo;
+                stockDetail.RoadwayNo = storageLocat.RoadwayNo;
+                stockDetail.WareHouseNo = storageLocat.WareHouseNo;
+                Db.Updateable(stockDetail).ExecuteCommand();
+
+
+                Db.CommitTran();
+            }
+            catch (Exception ex)
+            {
+
+                throw new Exception("AGV杩斿洖绉诲簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細"+ex);
+            }
+        }
+        #endregion
     }
 }

--
Gitblit v1.8.0