From 614945e153d38d1dadf5beb1e1d4dbc6db07c226 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 20 十月 2025 03:17:53 +0800
Subject: [PATCH] 优化出入库

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs |  339 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 210 insertions(+), 129 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 28466a4..70c5937 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"
@@ -53,10 +53,10 @@
             _supplyTaskService = supplyTaskService;
         }
 
-        
-       
+
+
         /// <summary>
-        /// pda鑾峰彇鍑哄簱鍗�
+        /// pda鏌ヨ鍑哄簱鍗曚俊鎭�
         /// </summary>
         /// <param name="saveModel"></param>
         /// <returns></returns>
@@ -87,14 +87,28 @@
             }
             return content;
         }
+
+        /// <summary>
+        /// pda鏌ョ湅鍏ュ簱璇︽儏琛�
+        /// </summary>
+        /// <param name="pageNo"></param>
+        /// <param name="orderNo"></param>
+        /// <returns></returns>
         public WebResponseContent GetCabinOrderDetail(int pageNo, string orderNo)
         {
             WebResponseContent content = new WebResponseContent();
             Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Includes(x => x.Details).First(x => x.Order_no == orderNo);
-            List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Reservoirarea == pageNo.ToString()).ToList();
+            List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Status == 2).ToList();
             content.OK(data: cabinOrderDetails);
             return content;
         }
+
+
+        /// <summary>
+        /// Pad鍏ュ簱瀹屾垚 
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
         public WebResponseContent FeedbackIn([FromBody] SaveModel saveModel)
         {
             WebResponseContent content = new WebResponseContent();
@@ -107,7 +121,8 @@
                 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) return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞凡瀹屾垚");
-                Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == batchNo && x.Reservoirarea == warehouseCode).First();
+                //Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == batchNo && x.Reservoirarea == warehouseCode).First();
+                Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == batchNo && x.Status == 2).First();
                 if (cabinOrderDetail == null) return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟槑缁嗗凡瀹屾垚");
                 Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == cabinOrderDetail.Goods_no);
                 if (materielInfo == null) return WebResponseContent.Instance.Error($"璇风淮鎶ょ墿鏂欑紪鍙枫�恵cabinOrderDetail.Goods_no}銆戠殑鐗╂枡淇℃伅");
@@ -124,7 +139,34 @@
                 if (cabinOrderDetail.Order_Inqty == cabinOrderDetail.Order_qty)
                 {
                     cabinOrderDetail.OrderDetailStatus = "宸插畬鎴�";
-                    _cabinOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.鑷姩瀹屾垚);
+                    //_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();
+                    if (i<0)
+                    {
+                        _unitOfWorkManage.RollbackTran();
+                    }
+                    var v = BaseDal.Db.Deleteable<Dt_CabinOrderDetail>(cabinOrderDetail).ExecuteCommand();
+                    if (v < 0)
+                    {
+                        _unitOfWorkManage.RollbackTran();
+                    }
                 }
                 else
                 {
@@ -242,6 +284,8 @@
         }
 
 
+
+
         /// <summary>
         /// 鑾峰彇涓婃父绯荤粺鐨勫叆搴撳崟
         /// </summary>
@@ -253,7 +297,9 @@
             try
             {
                 // 璇锋眰鍦板潃
-                var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder";
+                //var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder";
+                var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363009261";
+
                 //if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                 //// 璇锋眰鍙傛暟
                 var requestData = new
@@ -303,127 +349,88 @@
 
                     foreach (var order in newOrders)
                     {
+                        if (order.order_type == "1") //姝e父鍏ュ簱
+                        {
+
+                        }
+                        else
+                        {
+                            //鍒涘缓鍑哄簱鍗�
+                        }
+                        #region 鍒涘缓涓�涓叆搴撳崟鏂规硶
+                        //鎺掗櫎鐗规畩鑽搧
                         bool skipOrder = false;//鏍囪鏄惁璺宠繃璇ュ叆搴撳崟
-                        var entityOrder = new Dt_CabinOrder
+                        if (order.warehouse_no != "001" && order.warehouse_no != "澶т欢骞冲簱") //鐗规畩鑽搧搴撴埧鍙疯繘琛屼笅闈㈡搷浣�
                         {
-                            Order_no = order.order_no,
-                            //鍏ュ簱鍗曠被鍨�
-                            Order_type = order.order_type,
-                            Supplier_no = order.supplier_no,
-                            Account_tiem = order.account_time,
-                            OdrderStatus = "鏂板缓",
-                            Supplier_name = order.supplier_name,
-                            Warehouse_no = order.warehouse_no,
-                            Details = new List<Dt_CabinOrderDetail>()
-                            //Details = order.details.Select(d => new Dt_CabinOrderDetail
-                            //{
-                            //    //OrderId 瑕佹嬁鍒板叆搴撳崟琛ㄤ腑鐨刬d锛屽浣曟嬁涓嶅埌灏卞皢杩欎釜瀛楁鏀逛簡锛屾敼鎴愬叆搴撳崟鍙�
-                            //    // SqlSugar InsertNav宸ヤ綔鍘熺悊鍏堟彃鍏ヤ富琛� (Dt_CabinOrder)//鑾峰彇鐢熸垚鐨勪富閿甀D//鑷姩璁剧疆瀛愯〃鐨勫叧鑱斿瓧娈� (OrderId)//鍐嶆彃鍏�(Dt_CabinOrderDetail)
-                            //    Goods_no = d.goods_no,
-                            //    Order_qty = d.order_qty,
-                            //    Batch_num = d.batch_num,
-                            //    Exp_date = d.exp_date,
-                            //    OrderDetailStatus = "鏂板缓",
-                            //    Status = order.warehouse_no == "001" ? 0 : 2, //濡傛灉鏄�001鎴块偅涔堝氨鏄湭鍚屾鐘舵�侊紝濡傛灉涓嶆槸001鎴块偅涔堝氨鏄棤闇�鍚屾鐘舵��
-                            //}).ToList()
-                        };
-                        foreach (var item in order.details)
-                        {
-                            // 灏嗕笂娓稿叆搴撴暟閲忚浆涓烘鏁�
-                            item.order_qty = Math.Abs(item.order_qty);
-                            #region 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅
-                            Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no);
-                            //濡傛灉鐗╂枡淇℃伅涓嶅瓨鍦紝璺宠繃鏁翠釜鍏ュ簱鍗�
-                            if (materielInfo == null)
+                            //鍒涘缓鍏ュ簱鍗曚富琛ㄤ粠琛�
+                            var entityOrder = new Dt_CabinOrder
                             {
-                                skipOrder = true;
-                                Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽師鍥狅細鏈壘鍒板晢鍝� [{item.goods_no}] 鐨勭墿鏂欎俊鎭��");
-                                break;
-                            }
-
-                            //  鑻ョ墿鏂欎笉瀛樺湪鎴� MaterielSourceType 涓虹┖锛屽垯璺宠繃鏁翠釜鍏ュ簱鍗�
-                            if (materielInfo == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
-                            {
-                                skipOrder = true;
-                                break;
-                            }
-                            //Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First();
-                            ///鏍规嵁鐗╂枡淇℃伅澶у皬浠跺睘鎬у尯鍒嗘槸鍚﹀叆绔嬪簱 //澶т欢鍏ュ钩搴�
-                            if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)
-                            {
-                                Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail()
+                                Order_no = order.order_no,
+                                //鍏ュ簱鍗曠被鍨�
+                                Order_type = order.order_type,
+                                Supplier_no = order.supplier_no,
+                                Account_tiem = order.account_time,
+                                OdrderStatus = "鏂板缓",
+                                Supplier_name = order.supplier_name,
+                                Warehouse_no = order.warehouse_no,
+                                Details = order.details.Select(d => new Dt_CabinOrderDetail
                                 {
-                                    Reservoirarea = order.warehouse_no,
-                                    Goods_no = item.goods_no,
-                                    Order_qty = item.order_qty,
-                                    Batch_num = item.batch_num,
-                                    Exp_date = item.exp_date,
+                                    //OrderId 瑕佹嬁鍒板叆搴撳崟琛ㄤ腑鐨刬d锛屽浣曟嬁涓嶅埌灏卞皢杩欎釜瀛楁鏀逛簡锛屾敼鎴愬叆搴撳崟鍙�
+                                    // SqlSugar InsertNav宸ヤ綔鍘熺悊鍏堟彃鍏ヤ富琛� (Dt_CabinOrder)//鑾峰彇鐢熸垚鐨勪富閿甀D//鑷姩璁剧疆瀛愯〃鐨勫叧鑱斿瓧娈� (OrderId)//鍐嶆彃鍏�(Dt_CabinOrderDetail)
+                                    Goods_no = d.goods_no,
+                                    Order_qty = d.order_qty,
+                                    Batch_num = d.batch_num,
+                                    Exp_date = d.exp_date,
                                     OrderDetailStatus = "鏂板缓",
-                                    Status = 2
-                                };
-                                entityOrder.Details.Add(orderDetail);
-                            }
-                            else
+                                    Status = 2, //濡傛灉鏄�001鎴块偅涔堝氨鏄湭鍚屾鐘舵�侊紝濡傛灉涓嶆槸001鎴块偅涔堝氨鏄棤闇�鍚屾鐘舵��
+                                }).ToList()
+                            };
+                            _CabinOrders.Add(entityOrder);
+                        }
+                        else
+                        {
+                            //鍖哄垎骞冲簱绔嬪簱
+                            var entityOrder = new Dt_CabinOrder
                             {
-                                Dt_CabinOrderDetail orderDetail = null;
-                                var ys = item.order_qty % materielInfo.BoxQty; //涓嶈兘鏁撮櫎绠辫鐨勬暎浠舵暟
-                                var xs = item.order_qty / materielInfo.BoxQty;//鏁寸鏁伴噺
-                                #region 鐢熸垚绔嬪簱鍏ュ簱鍗�
-
-                                #region 鍒ゆ柇鏄惁鏈夋暎浠�
-                                if (ys > 0)
+                                Order_no = order.order_no,
+                                //鍏ュ簱鍗曠被鍨�
+                                Order_type = order.order_type,
+                                Supplier_no = order.supplier_no,
+                                Account_tiem = order.account_time,
+                                OdrderStatus = "鏂板缓",
+                                Supplier_name = order.supplier_name,
+                                Warehouse_no = order.warehouse_no,
+                                Details = new List<Dt_CabinOrderDetail>()
+                            };
+                            foreach (var item in order.details)
+                            {
+                                // 灏嗕笂娓稿叆搴撴暟閲忚浆涓烘鏁�
+                                item.order_qty = Math.Abs(item.order_qty);
+                                #region 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅
+                                Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no);
+                                //濡傛灉鐗╂枡淇℃伅涓嶅瓨鍦紝璺宠繃鏁翠釜鍏ュ簱鍗�
+                                if (materielInfo == null)
                                 {
-                                    orderDetail = new Dt_CabinOrderDetail()
+                                    skipOrder = true;
+                                    Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽師鍥狅細鏈壘鍒板晢鍝� [{item.goods_no}] 鐨勭墿鏂欎俊鎭��");
+                                    break;
+                                }
+
+                                //  鑻ョ墿鏂欎笉瀛樺湪鎴� MaterielSourceType 涓虹┖锛屽垯璺宠繃鏁翠釜鍏ュ簱鍗�
+                                if (materielInfo == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
+                                {
+                                    skipOrder = true;
+                                    break;
+                                }
+                                //Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First();
+                                ///鏍规嵁鐗╂枡淇℃伅澶у皬浠跺睘鎬у尯鍒嗘槸鍚﹀叆绔嬪簱 //澶т欢鍏ュ钩搴�
+                                if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)//濡傛灉鐗╂枡鏄ぇ浠�
+                                {
+                                    Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail()
                                     {
                                         Reservoirarea = order.warehouse_no,
                                         Goods_no = item.goods_no,
-                                        Order_qty = ys,
-                                        Batch_num = item.batch_num,
-                                        Exp_date = item.exp_date,
-                                        OrderDetailStatus = "鏂板缓",
-                                        Status = 0
-                                    };
-                                    materielInfo.Business_qty += ys;
-                                }
-                                #endregion
-
-                                #region 鍒ゆ柇绔嬪簱搴撳瓨鏄惁澶т簬绔嬪簱鏈�浣庡簱瀛樻暟
-                                while (materielInfo.Business_qty < materielInfo.MinQty && xs > 0)
-                                {
-                                    xs--;
-                                    if (orderDetail == null)
-                                    {
-                                        orderDetail = new Dt_CabinOrderDetail()
-                                        {
-                                            Reservoirarea = order.warehouse_no,
-                                            Goods_no = item.goods_no,
-                                            Order_qty = materielInfo.BoxQty,
-                                            Batch_num = item.batch_num,
-                                            Exp_date = item.exp_date,
-                                            OrderDetailStatus = "鏂板缓",
-                                            Status = 0
-                                        };
-                                        materielInfo.Business_qty += materielInfo.BoxQty;
-                                    }
-                                    else
-                                    {
-                                        orderDetail.Order_qty += materielInfo.BoxQty;
-                                        materielInfo.Business_qty += materielInfo.BoxQty;
-                                    }
-                                }
-                                #endregion 
-
-                                if (orderDetail != null) entityOrder.Details.Add(orderDetail);
-                                #endregion
-
-                                #region 鍓╀綑鏁翠欢鍏ュ钩搴�
-                                if (xs > 0)
-                                {
-                                    orderDetail = new Dt_CabinOrderDetail()
-                                    {
-                                        Reservoirarea = order.warehouse_no,
-                                        Goods_no = item.goods_no,
-                                        Order_qty = materielInfo.BoxQty * xs,
+                                        Order_qty = item.order_qty,
                                         Batch_num = item.batch_num,
                                         Exp_date = item.exp_date,
                                         OrderDetailStatus = "鏂板缓",
@@ -431,20 +438,93 @@
                                     };
                                     entityOrder.Details.Add(orderDetail);
                                 }
+                                else
+                                {
+                                    Dt_CabinOrderDetail orderDetail = null;
+                                    var ys = item.order_qty % materielInfo.BoxQty; //涓嶈兘鏁撮櫎绠辫鐨勬暎浠舵暟 
+                                    //var xs = item.order_qty / materielInfo.BoxQty;//鏁寸鏁伴噺 
+                                    var xs = (int)(item.order_qty / materielInfo.BoxQty);//淇濈暀鏁存暟
+                                    #region 鐢熸垚绔嬪簱鍏ュ簱鍗�
+
+                                    #region 鍒ゆ柇鏄惁鏈夋暎浠�
+                                    if (ys > 0)
+                                    {
+                                        orderDetail = new Dt_CabinOrderDetail()
+                                        {
+                                            Reservoirarea = order.warehouse_no,
+                                            Goods_no = item.goods_no,
+                                            Order_qty = ys,
+                                            Batch_num = item.batch_num,
+                                            Exp_date = item.exp_date,
+                                            OrderDetailStatus = "鏂板缓",
+                                            Status = 0
+                                        };
+                                        materielInfo.Business_qty += ys;
+                                    }
+                                    #endregion
+
+                                    #region 鍒ゆ柇绔嬪簱搴撳瓨鏄惁澶т簬绔嬪簱鏈�浣庡簱瀛樻暟
+                                    while (materielInfo.Business_qty < materielInfo.MinQty && xs > 0) //褰撲笟鍔℃暟閲忓拰鏁寸鏁伴兘澶т簬0鐨勬椂鍊欐墠浼氬仠姝㈠惊鐜�
+                                    {
+                                        xs--;
+                                        if (orderDetail == null)
+                                        {
+                                            orderDetail = new Dt_CabinOrderDetail()
+                                            {
+                                                Reservoirarea = order.warehouse_no,
+                                                Goods_no = item.goods_no,
+                                                Order_qty = materielInfo.BoxQty,
+                                                Batch_num = item.batch_num,
+                                                Exp_date = item.exp_date,
+                                                OrderDetailStatus = "鏂板缓",
+                                                Status = 0
+                                            };
+                                            materielInfo.Business_qty += materielInfo.BoxQty;
+                                        }
+                                        else
+                                        {
+                                            orderDetail.Order_qty += materielInfo.BoxQty;
+                                            materielInfo.Business_qty += materielInfo.BoxQty;
+                                        }
+                                    }
+
+                                    if (orderDetail != null) entityOrder.Details.Add(orderDetail);
+                                    #endregion
+
+
+                                    #endregion
+
+                                    #region 鍓╀綑鏁翠欢鍏ュ钩搴�
+                                    if (xs > 0)
+                                    {
+                                        orderDetail = new Dt_CabinOrderDetail()
+                                        {
+                                            Reservoirarea = order.warehouse_no,
+                                            Goods_no = item.goods_no,
+                                            Order_qty = materielInfo.BoxQty * xs,
+                                            Batch_num = item.batch_num,
+                                            Exp_date = item.exp_date,
+                                            OrderDetailStatus = "鏂板缓",
+                                            Status = 2
+                                        };
+                                        entityOrder.Details.Add(orderDetail);
+                                    }
+                                    #endregion
+                                }
+                                _basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
+                                //_medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand();
                                 #endregion
                             }
-                            _basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
-                            //_medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand();
                             #endregion
+                            // 鉂楀鏋滆烦杩囪鍗曪紝鍒欑洿鎺ontinue锛屼笉淇濆瓨
+                            if (skipOrder)
+                            {
+                                Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽洜涓哄瓨鍦ㄦ湭瀹氫箟鐗╂枡灞炴�х殑鍟嗗搧銆�");
+                                continue;
+                            }
+                            _CabinOrders.Add(entityOrder);
+                            orderNos.Add(order.order_no);
                         }
-                        // 鉂楀鏋滆烦杩囪鍗曪紝鍒欑洿鎺ontinue锛屼笉淇濆瓨
-                        if (skipOrder)
-                        {
-                            Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽洜涓哄瓨鍦ㄦ湭瀹氫箟鐗╂枡灞炴�х殑鍟嗗搧銆�");
-                            continue;
-                        }
-                        _CabinOrders.Add(entityOrder);
-                        orderNos.Add(order.order_no);
                     };
                     BaseDal.Db.InsertNav(_CabinOrders).Include(x => x.Details).ExecuteCommand();
 
@@ -768,7 +848,8 @@
                         }).ToList()
                     };
 
-                    var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
+                    //var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
+                    var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363019549";
                     var result = HttpHelper.Post(url, ediDto.ToJsonString());
                     var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
 

--
Gitblit v1.9.3