From d55ef610a530c2ab0a30d6ecdc1e7e4ab54cc896 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 24 十月 2025 23:16:42 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs |   65 +++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 26 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index f24f1aa..39e9366 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -1,6 +1,7 @@
 锘縰sing HslCommunication;
 using MailKit.Search;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.Data.SqlClient;
 using Newtonsoft.Json;
 using SqlSugar;
 using System;
@@ -40,11 +41,12 @@
         private readonly IInventory_BatchServices _inventory_BatchServices;
         private readonly IInventoryInfoService _inventoryInfoService;
         private readonly ICabinOrderDetailServices _cabinOrderDetailServices;
+        private readonly IDeliveryOrderServices _eliveryOrderServices;
         private readonly ISupplyTaskService _supplyTaskService;
         private readonly ISupplyTaskHtyService _supplyTaskHtyService;
         public IRepository<Dt_CabinOrder> Repository => BaseDal;
 
-        public CabinOrderServices(IRepository<Dt_CabinOrder> BaseDal, IBasicService basicService, IMedicineGoodsServices medicineGoodsServices, IUnitOfWorkManage unitOfWorkManage, IInventory_BatchServices inventory_BatchServices, IInventoryInfoService inventoryInfoService, ICabinOrderDetailServices cabinOrderDetailServices, ICabinOrderHtyServices cabinOrderHtyServices, ICabinOrderDetailHtyServices cabinOrderDetailHtyServices, ISupplyTaskService supplyTaskService, ISupplyTaskHtyService supplyTaskHtyService) : base(BaseDal)
+        public CabinOrderServices(IRepository<Dt_CabinOrder> BaseDal, IBasicService basicService, IMedicineGoodsServices medicineGoodsServices, IUnitOfWorkManage unitOfWorkManage, IInventory_BatchServices inventory_BatchServices, IInventoryInfoService inventoryInfoService, ICabinOrderDetailServices cabinOrderDetailServices, ICabinOrderHtyServices cabinOrderHtyServices, ICabinOrderDetailHtyServices cabinOrderDetailHtyServices, ISupplyTaskService supplyTaskService, ISupplyTaskHtyService supplyTaskHtyService, IDeliveryOrderServices eliveryOrderServices) : base(BaseDal)
         {
             _basicService = basicService;
             _medicineGoodsServices = medicineGoodsServices;
@@ -54,6 +56,7 @@
             _cabinOrderDetailServices = cabinOrderDetailServices;
             _supplyTaskService = supplyTaskService;
             _supplyTaskHtyService = supplyTaskHtyService;
+            _eliveryOrderServices = eliveryOrderServices;
         }
 
 
@@ -120,12 +123,13 @@
                 var LocationCode = saveModel.MainData["LocationCode"].ToString();
                 var orderNo = saveModel.MainData["orderNo"].ToString();
                 var batchNo = saveModel.MainData["batchNo"].ToString();
+                var materielCode = saveModel.MainData["materielCode"].ToString();
                 var Inqty = saveModel.MainData["Inqty"].ObjToInt();
                 var warehouseCode = saveModel.MainData["warehouseCode"].ToString();
                 Dt_CabinOrder cabinOrder = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == orderNo && x.Warehouse_no == warehouseCode).Includes(x => x.Details).First();
                 if (cabinOrder == null || cabinOrder.OdrderStatus == "宸插畬鎴�")
                     return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞凡瀹屾垚");
-                Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == batchNo && x.Status == 2).First();
+                Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Goods_no == materielCode && x.Batch_num == batchNo && x.Status == 2).FirstOrDefault();
                 if (cabinOrderDetail == null || cabinOrderDetail.OrderDetailStatus == "宸插畬鎴�")
                     return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟槑缁嗗凡瀹屾垚");
                 Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == cabinOrderDetail.Goods_no);
@@ -143,28 +147,9 @@
                 if (cabinOrderDetail.Order_Inqty == cabinOrderDetail.Order_qty)
                 {
                     cabinOrderDetail.OrderDetailStatus = "宸插畬鎴�";
-                    //_cabinOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.鑷姩瀹屾垚);
-
-                    //Dt_CabinOrderDetail_Hty hty = new Dt_CabinOrderDetail_Hty
-                    //{
-                    //    Id = cabinOrderDetail.OrderId,
-                    //    Reservoirarea = cabinOrderDetail.Reservoirarea,
-                    //    Goods_no = cabinOrderDetail.Goods_no,
-                    //    Order_qty = cabinOrderDetail.Order_qty,
-                    //    Order_Inqty = cabinOrderDetail.Order_Inqty,
-                    //    Batch_num = cabinOrderDetail.Batch_num,
-                    //    Exp_date = cabinOrderDetail.Exp_date,
-                    //    OrderDetailStatus = cabinOrderDetail.OrderDetailStatus,
-                    //    Status = cabinOrderDetail.Status,
-                    //    Creater = cabinOrderDetail.Creater,
-                    //    CreateDate = cabinOrderDetail.CreateDate,
-                    //    Modifier = App.User.UserName,
-                    //    ModifyDate = DateTime.Now
-                    //};
-                    //var i = BaseDal.Db.Insertable(hty).ExecuteCommand();
                 }
                 _cabinOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
-                var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no).Includes(x => x.Details).First();
+                var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no && x.Warehouse_no == warehouseCode).Includes(x => x.Details).First();
                 if (!cabinOrder1.Details.Where(x => x.OrderDetailStatus != "宸插畬鎴�").Any()) cabinOrder.OdrderStatus = "宸插畬鎴�";
                 Repository.UpdateData(cabinOrder);
                 #endregion
@@ -174,6 +159,8 @@
                 if (location == null) return WebResponseContent.Instance.Error($"璇风淮鎶よ揣浣嶇紪鍙枫�恵LocationCode}銆戠殑璐т綅淇℃伅");
                 if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
                     return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戝凡绂佺敤锛岃鎭㈠姝e父鍐嶄娇鐢�");
+                if (location.WarehouseCode != cabinOrderDetail.Reservoirarea)
+                    return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戞墍灞炲簱鎴夸笌褰撳墠鍏ュ簱鍗曟墍灞炲簱鎴夸笉鍖归厤");
                 if (location.LocationStatus == LocationStatusEnum.Free.ObjToInt())
                 {
                     location.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
@@ -187,6 +174,7 @@
                 {
                     inventoryInfo.StockQuantity += Inqty;
                     inventoryInfo.AvailableQuantity += Inqty;
+                    inventoryInfo.InDate = DateTime.Now;
                     _inventoryInfoService.UpdateData(inventoryInfo);
                 }
                 else
@@ -301,7 +289,7 @@
             }
             return content;
         }
-        static string SearchDate = "2025-10-10 00:00:00";
+        static string SearchDate = "2025-09-10 00:00:00";
         /// <summary>
         /// 鑾峰彇涓婃父绯荤粺鐨勫叆搴撳崟
         /// </summary>
@@ -371,9 +359,33 @@
                             List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>;
                             if (dt_CabinOrders != null) _CabinOrders.AddRange(dt_CabinOrders);
                         }
-                        else
+                        else if (order.order_type == "3")//鍏ュ簱閫�鏂�
                         {
                             //鍒涘缓鍑哄簱鍗�
+                            #region 杞崲涓哄嚭搴撳崟
+                            UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo()
+                            {
+                                order_no = order.order_no,
+                                order_type = order.order_type,
+                                warehouse_no = order.warehouse_no,
+                                details = new List<UpstreamOutOrderDetail>()
+                            };
+                            foreach (var item in order.details)
+                            {
+                                UpstreamOutOrderDetail detail = new UpstreamOutOrderDetail()
+                                {
+                                    batch_num = item.batch_num,
+                                    goods_no = item.goods_no,
+                                    order_qty = item.order_qty,
+                                    exp_date = item.exp_date,
+                                };
+                                upstramOutOrderInfo.details.Add(detail);
+                            }
+                            _eliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo);
+                            #endregion
+                        }
+                        else if (order.order_type == "5")//鎶ユ孩鍏ュ簱
+                        {
 
                         }
                     };
@@ -584,9 +596,10 @@
                 //    .Includes(o => o.Details, d => d.MedicineGoods)
                 //    .ToList();
                 //鏌ュ嚭鍖呭惈鍏ㄩ儴鐨勫叆搴撳崟锛屽寘鍚叏閮ㄦ槑缁�+涓�涓槑缁嗗搴斾竴涓晢鍝�
+                var reslut = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
                 var orders = BaseDal.Db.CopyNew()
                 .Queryable<Dt_CabinOrder>()
-                .Where(o => o.OdrderStatus == "鏂板缓")
+                .Where(o => o.OdrderStatus == "鏂板缓" && o.Warehouse_no == reslut)
                 .Includes(o => o.Details, d => d.MedicineGoods)
                 .ToList();
                 // 3. 鍐嶈繃婊ゆ帀涓嶇鍚堟潯浠剁殑鏄庣粏锛堝彧淇濈暀 Status=0锛�
@@ -698,7 +711,7 @@
             try
             {
                 #region 鏌ユ壘鎵�鏈夊凡瀹屾垚鍏ュ簱鍗�
-                var inorders = BaseDal.QueryData(x => x.OdrderStatus == "宸插畬鎴�").Select(x => x.Order_no).ToList();
+                var inorders = BaseDal.QueryData(x => x.OdrderStatus == "宸插畬鎴�").Select(x => x.Order_no).Distinct().ToList();
                 foreach (var inorder in inorders)
                 {
                     //var Orders = BaseDal.QueryData(x => x.Order_no == inorder);

--
Gitblit v1.9.3