yanjinhui
2025-10-14 ff4660980ccfe3e123df8d5fa820266784625c74
´úÂë¹ÜÀí/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -1,4 +1,5 @@
using Masuit.Tools;
using MailKit.Search;
using Masuit.Tools;
using Newtonsoft.Json;
using SqlSugar;
using System;
@@ -131,7 +132,6 @@
        public WebResponseContent GetUpstreamOrder()
        {
            var responseContent = new WebResponseContent();
            try
            {
                // è¯·æ±‚地址
@@ -179,6 +179,7 @@
                            OdrderStatus = "新建",
                            Details = order.details.Select(d => new Dt_CabinOrderDetail
                            {
                                //OrderId è¦æ‹¿åˆ°å…¥åº“单表中的id,如何拿不到就将这个字段改了,改成入库单号
                                Goods_no = d.goods_no,
                                Order_qty = d.order_qty,
                                Batch_num = d.batch_num,
@@ -234,18 +235,17 @@
        {
            try
            {
                // 1. å…ˆæ‰¾å‡ºè‡³å°‘有一条符合条件的明细对应的订单ID
                //var validOrderIds = Db.Queryable<Dt_CabinOrderDetail>()
                //    .Where(d => d.Status == 0 || d.Status == 2)
                //    .Select(d => d.OrderId)
                //    .Distinct()
                //2.查询符合条件的订单(表头 = æ–°å»º && åŒ…含有效明细)
                //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>()
                //    .Where(o => o.OdrderStatus == "新建")
                //    .Includes(o => o.Details, d => d.MedicineGoods)
                //    .ToList();
                // 2. æŸ¥è¯¢ç¬¦åˆæ¡ä»¶çš„订单(表头=新建 && åŒ…含有效明细)
                var orders = BaseDal.Db.Queryable<Dt_CabinOrder>()
                    .Where(o => o.OdrderStatus == "新建")
                    .Includes(o => o.Details, d => d.MedicineGoods)
                    .ToList();
                //查出包含全部的入库单,包含全部明细+一个明细对应一个商品
                var orders = BaseDal.Db.CopyNew()
                .Queryable<Dt_CabinOrder>()
                .Where(o => o.OdrderStatus == "新建")
                .Includes(o => o.Details, d => d.MedicineGoods)
                .ToList();
                // 3. å†è¿‡æ»¤æŽ‰ä¸ç¬¦åˆæ¡ä»¶çš„æ˜Žç»†ï¼ˆåªä¿ç•™ Status=0)
                foreach (var order in orders)
                {
@@ -315,13 +315,13 @@
                    if (resp != null && resp.code == "0")
                    {
                        // æ›´æ–°è¡¨å¤´çŠ¶æ€
                        Db.Updateable<Dt_CabinOrder>()
                       BaseDal.Db.Updateable<Dt_CabinOrder>()
                          .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "开始" })
                          .Where(o => o.Id == order.Id)
                          .ExecuteCommand();
                        // æ›´æ–°æ˜Žç»†çŠ¶æ€ä¸ºå·²åŒæ­¥
                        Db.Updateable<Dt_CabinOrderDetail>()
                        BaseDal.Db.Updateable<Dt_CabinOrderDetail>()
                          .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "已完成" })
                          .Where(d => d.OrderId == order.Id && d.Status == 0)
                          .ExecuteCommand();
@@ -347,7 +347,7 @@
        /// <summary>
        /// å…¥åº“报完成接口
        /// å…¥åº“报完成接口 //检查一个详细表中全部状态为完成的时候就将入库单的开始改写成完成并推送给上游
        /// </summary>
        /// <param name="order_no">入库单号</param>
        /// <returns></returns>
@@ -372,7 +372,7 @@
                }
                // å…ˆæŸ¥è¡¨å¤´
                var order = Db.Queryable<Dt_CabinOrder>()
                var order = BaseDal.Db.Queryable<Dt_CabinOrder>()
                              .First(o => o.Order_no == order_no);
                if (order == null)
@@ -381,14 +381,14 @@
                }
                // æŸ¥è¯¢æ‰€æœ‰æ˜Žç»†æ˜¯å¦éƒ½å·²å®Œæˆ
                var allDetailsCompleted = Db.Queryable<Dt_CabinOrderDetail>()
                var allDetailsCompleted = BaseDal.Db.Queryable<Dt_CabinOrderDetail>()
                    .Where(d => d.OrderId == order.Id&&d.OrderDetailStatus=="已完成")  // æ˜Žç»†è¡¨ç”¨ OrderId å…³è”主表
                     .Count();
                if (allDetailsCompleted>0)
                {
                    // æ›´æ–°è¡¨å¤´çŠ¶æ€ä¸ºå·²å®Œæˆ
                    Db.Updateable<Dt_CabinOrder>()
                    BaseDal.Db.Updateable<Dt_CabinOrder>()
                      .SetColumns(o => o.OdrderStatus == "已完成")
                      .Where(o => o.Order_no == order_no)
                      .ExecuteCommand();
@@ -408,6 +408,7 @@
            }
        }
        /// <summary>
        /// æŽ¨é€å¼‚常信息给上游系统1.入库单接口;2.入库单报完成接口;3.出库单接口;4.出库报完成接口;5.药品基础信息同步接口;6.供应商信息接口;7.客户信息接口;8.库存