yanjinhui
2025-11-12 b790305873e20a7f26d63c71623210964105014e
优化
已修改7个文件
869 ■■■■ 文件已修改
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs 152 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs 285 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs 377 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs
@@ -1,6 +1,7 @@
using HslCommunication;
using Newtonsoft.Json;
using Quartz.Util;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -167,6 +168,13 @@
            return "未知";
        }
        /// <summary>
        /// å‘给下游wcs同步药品信息
        /// </summary>
        /// <returns></returns>
        #region åŒæ­¥ä¸‹æ¸¸ç‰©æ–™æŽ¥å£
        public WebResponseContent ProductSynchronous()
        {
            try
@@ -222,82 +230,84 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// å‘给下游wcs同步药品信息
        /// </summary>
        /// <returns></returns>
        public WebResponseContent ProductSynchronous1()
        {
            try
            {
                //把小件未下发的的信息和箱规为0,最低库存为0的过滤掉
                //var list = BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x => x.GoodStatusState == "未下发" && x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart).ToList();
                var list = BaseDal.QueryData(x => x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart && x.BoxQty > 0 && x.MinQty > 0 && x.GoodStatusState == "未下发").ToList();
                if (list.Count < 1)
                {
                    return new WebResponseContent().OK("无未下发药品");
                }
                //找到了就将整个list发给下游系统
                foreach (var item in list)
                {
                    var medicineDTO = new ProductInfo
                    {
                        //用户code
                        customerCode = "905",
                        //物料类型
                        materialCode = item.MaterielErpType,
                        //产品编码
                        productCode = item.MaterielCode,
                        //产品名
                        productName = item.MaterielName,
                        //产品条码
                        productBarCode = item.Barcode,
        #endregion
                        //药剂
                        medicine = item.Dosage_form,//这里要调用方法,转化方法
                        //规格
                        productSpecifications = item.MaterielSpec,
                        //单位
                        unit = item.MaterielUnit,
                        //长
                        singleProductLongNum = (item.MaterielLength ?? 0).ToString(),
                        //宽
                        singleProductWideNum = (item.MaterielWide ?? 0).ToString(),
                        //高
                        singleProductHighNum = (item.MaterielHeight ?? 0).ToString(),
                        //重量
                        singleProductWeight = (item.MaterielWeight ?? 0).ToString(),
                        //体积
                        singleProductVolume = (item.MaterielVolume ?? 0).ToString(),
                        //是否取消 0是不删除,1删除
                        isDelete = "0"
                    };
                    var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous";
                    var result = HttpHelper.Post(url, medicineDTO.ToJsonString());
                    var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
        #region æ‰‹åŠ¨å…³é—­æ•°æ®åº“è¿žæŽ¥ åŒæ­¥ä¸‹æ¸¸ç‰©æ–™
        //public WebResponseContent ProductSynchronous()
        //{
        //    using (var db = new SqlSugarClient(new ConnectionConfig
        //    {
        //        ConnectionString = "Data Source=.;Initial Catalog=WIDESEA_WMSDBF_Z22;User ID=sa;Password=48PYX_h7KS@f;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
        //        DbType = DbType.SqlServer,
        //        IsAutoCloseConnection = true,  // å…³é”®é…ç½®ï¼Œè‡ªåŠ¨å…³é—­è¿žæŽ¥
        //        MoreSettings = new ConnMoreSettings()
        //        {
        //            IsAutoRemoveDataCache = true
        //        }
        //    }))
        //    {
        //        try
        //        {
        //            List<Dt_MaterielInfo> materielInfos = db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart && x.BoxQty > 0 && x.MinQty > 0 && x.GoodStatusState == "未下发").ToList();
        //            if (materielInfos.Count < 1)
        //            {
                    if (resp != null && resp.code == "0")
                    {
                        item.GoodStatusState = "下发完成";
                    }
                    else
                    {
                        continue;
                    }
        //                return WebResponseContent.Instance.Error("无未下发药品");
        //            }
        //            var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous";
        //            foreach (var item in materielInfos)
        //            {
        //                var medicineDTO = new ProductInfo
        //                {
        //                    //用户code
        //                    customerCode = "905",
        //                    //物料类型
        //                    materialCode = item.MaterielErpType,
        //                    //产品编码
        //                    productCode = item.MaterielCode,
        //                    //产品名
        //                    productName = item.MaterielName,
        //                    //产品条码
        //                    productBarCode = item.Barcode,
                }
                BaseDal.UpdateData(list);
                //Db.Updateable(list).ExecuteCommand();
                return new WebResponseContent { Status = true, Message = "成功" };
            }
            catch (Exception ex)
            {
                Console.WriteLine("ProductSynchronous å¼‚常:" + ex.Message);
                return new WebResponseContent { Status = false, Message = ex.Message };
            }
        //                    //药剂
        //                    medicine = item.Dosage_form,//这里要调用方法,转化方法
        }
        //                    //规格
        //                    productSpecifications = item.MaterielSpec,
        //                    //单位
        //                    unit = item.MaterielUnit,
        //                    //长
        //                    singleProductLongNum = (item.MaterielLength ?? 0).ToString(),
        //                    //宽
        //                    singleProductWideNum = (item.MaterielWide ?? 0).ToString(),
        //                    //高
        //                    singleProductHighNum = (item.MaterielHeight ?? 0).ToString(),
        //                    //重量
        //                    singleProductWeight = (item.MaterielWeight ?? 0).ToString(),
        //                    //体积
        //                    singleProductVolume = (item.MaterielVolume ?? 0).ToString(),
        //                    //是否取消 0是不删除,1删除
        //                    isDelete = "0"
        //                };
        //                var result = HttpHelper.Post(url, medicineDTO.ToJsonString());
        //                var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
        //                if (resp != null && resp.code == "0") item.GoodStatusState = "下发完成";
        //            }
        //            db.Updateable(materielInfos).ExecuteCommand();
        //            return WebResponseContent.Instance.OK();
        //        }
        //        catch (Exception ex)
        //        {
        //            Console.WriteLine("下发WCS物料信息异常:" + ex.Message);
        //            return WebResponseContent.Instance.Error(ex.Message);
        //        }
        //    }
        //}
        #endregion
        public override WebResponseContent DeleteData(object[] keys)
        {
            WebResponseContent content = new WebResponseContent();
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs
@@ -120,6 +120,9 @@
            return content;
        }
        /// <summary>
        /// æ¶ˆæ¯å¤„理和推送 WebSocket实时推送
        /// </summary>
        public void GetMessageInfo()
        {
            try
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs
@@ -19,6 +19,7 @@
using static WIDESEA_DTO.SquareCabin.AlarmDto;
using OfficeOpenXml.Style;
using System.Security.Policy;
using SqlSugar;
namespace WIDESEA_SquareCabinServices
{
@@ -43,6 +44,164 @@
        }
        #region ä¸‹å‘立库入库单
        //public WebResponseContent EdiIn()
        //{
        //    try
        //    {
        //        var reslut = WarehouseEnum.立库.ObjToInt().ToString("000");
        //        var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "新建" && x.Warehouse_no == reslut).ToList();
        //        if (orders.Count < 1) return WebResponseContent.Instance.OK();
        //        string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
        //        var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.OrderId)).ToList();
        //        var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
        //        foreach (var order in orders)
        //        {
        //            order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList();
        //            foreach (var item in order.Details)
        //            {
        //                item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
        //            }
        //            #region ä¸‹å‘WCS
        //            string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
        //            var ediDto = new ToediInInfo
        //            {
        //                //客户代码
        //                customerCode = "905",
        //                //物料类型
        //                materialCode = materialCode,
        //                //入库单号
        //                externalOrderNo = order.Order_no,
        //                //入库单类型
        //                inOrderType = order.Order_type == "5" ? "20" : "10",
        //                //优先级
        //                priority = 0,
        //                //是否取消
        //                Is_cancel = 0,
        //                details = order.Details.Select(d => new ToediInDetail
        //                {
        //                    //批号
        //                    batchNo = d.Batch_num,
        //                    //产品
        //                    productCode = d.Goods_no,
        //                    //sku名称
        //                    productName = d.MedicineGoods.MaterielName,
        //                    //sku规格
        //                    productSpecifications = d.MedicineGoods.MaterielSpec,
        //                    //数量
        //                    quantity = (int)d.Order_qty,
        //                    //效期
        //                    validityPeriod = d.Exp_date,
        //                    //生产厂家
        //                    manufacturer = d.MedicineGoods.Factory,
        //                    //房号
        //                    libraryNo = order.Warehouse_no,
        //                }).ToList()
        //            };
        //            var result = HttpHelper.Post(url, ediDto.ToJsonString());
        //            var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
        //            if (resp != null && resp.code == "0")
        //            {
        //                order.OdrderStatus = "开始";
        //                foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id))
        //                {
        //                    item.Status = 1;
        //                    item.OrderDetailStatus = "开始";
        //                }
        //            }
        //            #endregion
        //        }
        //        _cabinOrderServices.UpdateData(orders);
        //        _cabinDetailServices.UpdateData(cabinOrderDetails);
        //        return WebResponseContent.Instance.OK();
        //    }
        //    catch (Exception ex)
        //    {
        //        Console.WriteLine("下发WCS入库单异常:" + ex.Message);
        //        return WebResponseContent.Instance.Error(ex.Message);
        //    }
        //}
        #endregion
        #region ä¸‹å‘立库出库单
        //public WebResponseContent EdiOut()
        //{
        //    try
        //    {
        //        var reslut = WarehouseEnum.立库.ObjToInt().ToString("000");
        //        var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "新建" && x.Warehouse_no == reslut).ToList();
        //        if (orders.Count < 1) return WebResponseContent.Instance.OK();
        //        string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
        //        var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)).ToList();
        //        var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
        //        foreach (var order in orders)
        //        {
        //            order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList();
        //            foreach (var item in order.Details)
        //            {
        //                item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
        //            }
        //            #region ä¸‹å‘WCS
        //            string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
        //            var ediDto = new ToediOutInfo
        //            {
        //                //客户代码
        //                customerCode = "905",
        //                //物料类型
        //                materialCode = materialCode,
        //                externalOrderNo = order.Out_no,
        //                outOrderType = order.Out_type,
        //                priority = 1,
        //                Is_cancel = 0,
        //                details = order.Details.Select(d => new ToeOutdiInDetail
        //                {
        //                    batchNo = d.Batch_num,
        //                    productCode = d.Goods_no,
        //                    productName = d.MedicineGoods.MaterielName,
        //                    productSpecifications = d.MedicineGoods.MaterielModel,
        //                    quantity = (int)d.Order_qty,
        //                }).ToList()
        //            };
        //            switch (order.Out_type)
        //            {
        //                case "1"://正常出库
        //                case "3"://入库退货
        //                    ediDto.outOrderType = "10";//一般交易出库单
        //                    break;
        //                case "6"://盘亏出库
        //                    ediDto.outOrderType = "30";//盘亏出库单
        //                    break;
        //            }
        //            var result = HttpHelper.Post(url, ediDto.ToJsonString());
        //            var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
        //            if (resp != null && resp.code == "0")
        //            {
        //                order.OutStatus = "开始";
        //                foreach (var item in deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id))
        //                {
        //                    item.Status = 1;
        //                    item.OotDetailStatus = "开始";
        //                }
        //            }
        //            #endregion
        //        }
        //        _deliveryOrderServices.UpdateData(orders);
        //        _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
        //        return WebResponseContent.Instance.OK();
        //    }
        //    catch (Exception ex)
        //    {
        //        Console.WriteLine("下发WCS出库单异常:" + ex.Message);
        //        return WebResponseContent.Instance.Error(ex.Message);
        //    }
        //}
        #endregion
        // ä½¿ç”¨ SqlSugar çš„ Ado.Connection æ‰‹åŠ¨ç®¡ç†
        #region ä¸‹å‘立库入库单
        public WebResponseContent EdiIn()
        {
            try
@@ -50,58 +209,64 @@
                var reslut = WarehouseEnum.立库.ObjToInt().ToString("000");
                var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "新建" && x.Warehouse_no == reslut).ToList();
                if (orders.Count < 1) return WebResponseContent.Instance.OK();
                string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn";
                var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.OrderId)).ToList();
                var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
                var orderIds = orders.Select(x => x.Id).ToList();
                var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orderIds.Contains(x.OrderId)).ToList();
                var goodsCodes = cabinOrderDetails.Select(x => x.Goods_no).Distinct().ToList();
                var materielInfos = _materielInfoService.Repository.QueryData(x => goodsCodes.Contains(x.MaterielCode)).ToList();
                foreach (var order in orders)
                {
                    order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList();
                    foreach (var item in order.Details)
                    {
                        item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
                    }
                    // å…³é”®ä¿®æ”¹ï¼šä¸è®¾ç½®å¯¼èˆªå±žæ€§ï¼Œé¿å…è§¦å‘延迟加载
                    // foreach (var item in order.Details)
                    // {
                    //     item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
                    // }
                    #region ä¸‹å‘WCS
                    string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
                    // ç›´æŽ¥ä»Ž materielInfos æŸ¥è¯¢ï¼Œä¸é€šè¿‡å¯¼èˆªå±žæ€§
                    var firstDetail = order.Details.FirstOrDefault();
                    var firstMedicine = firstDetail != null ?
                        materielInfos.FirstOrDefault(x => x.MaterielCode == firstDetail.Goods_no) : null;
                    string materialCode = firstMedicine?.MaterielErpType ?? "YY";
                    var ediDto = new ToediInInfo
                    {
                        //客户代码
                        customerCode = "905",
                        //物料类型
                        materialCode = materialCode,
                        //入库单号
                        externalOrderNo = order.Order_no,
                        //入库单类型
                        inOrderType = order.Order_type == "5" ? "20" : "10",
                        //优先级
                        priority = 0,
                        //是否取消
                        Is_cancel = 0,
                        details = order.Details.Select(d => new ToediInDetail
                        details = order.Details.Select(d =>
                        {
                            //批号
                            batchNo = d.Batch_num,
                            //产品
                            productCode = d.Goods_no,
                            //sku名称
                            productName = d.MedicineGoods.MaterielName,
                            //sku规格
                            productSpecifications = d.MedicineGoods.MaterielSpec,
                            //数量
                            quantity = (int)d.Order_qty,
                            //效期
                            validityPeriod = d.Exp_date,
                            //生产厂家
                            manufacturer = d.MedicineGoods.Factory,
                            //房号
                            libraryNo = order.Warehouse_no,
                            var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no);
                            return new ToediInDetail
                            {
                                batchNo = d.Batch_num,
                                productCode = d.Goods_no,
                                productName = medicine?.MaterielName ?? string.Empty,
                                productSpecifications = medicine?.MaterielSpec ?? string.Empty,
                                quantity = (int)d.Order_qty,
                                validityPeriod = d.Exp_date,
                                manufacturer = medicine?.Factory ?? string.Empty,
                                libraryNo = order.Warehouse_no,
                            };
                        }).ToList()
                    };
                    var result = HttpHelper.Post(url, ediDto.ToJsonString());
                    var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
                    if (resp != null && resp.code == "0")
                    {
                        order.OdrderStatus = "开始";
                        foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id))
                        foreach (var item in order.Details)
                        {
                            item.Status = 1;
                            item.OrderDetailStatus = "开始";
@@ -109,6 +274,7 @@
                    }
                    #endregion
                }
                _cabinOrderServices.UpdateData(orders);
                _cabinDetailServices.UpdateData(cabinOrderDetails);
                return WebResponseContent.Instance.OK();
@@ -119,6 +285,7 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        #endregion
        #region ä¸‹å‘立库出库单
@@ -129,37 +296,55 @@
                var reslut = WarehouseEnum.立库.ObjToInt().ToString("000");
                var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "新建" && x.Warehouse_no == reslut).ToList();
                if (orders.Count < 1) return WebResponseContent.Instance.OK();
                string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
                var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)).ToList();
                var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList();
                var orderIds = orders.Select(x => x.Id).ToList();
                var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orderIds.Contains(x.DeliveryOrderId)).ToList();
                var goodsCodes = deliveryOrderDetails.Select(x => x.Goods_no).Distinct().ToList();
                var materielInfos = _materielInfoService.Repository.QueryData(x => goodsCodes.Contains(x.MaterielCode)).ToList();
                foreach (var order in orders)
                {
                    order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList();
                    foreach (var item in order.Details)
                    {
                        item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
                    }
                    // å…³é”®ä¿®æ”¹ï¼šä¸è®¾ç½®å¯¼èˆªå±žæ€§ï¼Œé¿å…è§¦å‘延迟加载
                    // foreach (var item in order.Details)
                    // {
                    //     item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First();
                    // }
                    #region ä¸‹å‘WCS
                    string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY";
                    // ç›´æŽ¥ä»Ž materielInfos æŸ¥è¯¢ï¼Œä¸é€šè¿‡å¯¼èˆªå±žæ€§
                    var firstDetail = order.Details.FirstOrDefault();
                    var firstMedicine = firstDetail != null ?
                        materielInfos.FirstOrDefault(x => x.MaterielCode == firstDetail.Goods_no) : null;
                    string materialCode = firstMedicine?.MaterielErpType ?? "YY";
                    var ediDto = new ToediOutInfo
                    {
                        //客户代码
                        customerCode = "905",
                        //物料类型
                        materialCode = materialCode,
                        externalOrderNo = order.Out_no,
                        outOrderType = order.Out_type,
                        priority = 1,
                        Is_cancel = 0,
                        details = order.Details.Select(d => new ToeOutdiInDetail
                        details = order.Details.Select(d =>
                        {
                            batchNo = d.Batch_num,
                            productCode = d.Goods_no,
                            productName = d.MedicineGoods.MaterielName,
                            productSpecifications = d.MedicineGoods.MaterielModel,
                            quantity = (int)d.Order_qty,
                            var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no);
                            return new ToeOutdiInDetail
                            {
                                batchNo = d.Batch_num,
                                productCode = d.Goods_no,
                                productName = medicine.MaterielName,
                                productSpecifications = medicine.MaterielModel,
                                quantity = (int)d.Order_qty,
                            };
                        }).ToList()
                    };
                    switch (order.Out_type)
                    {
                        case "1"://正常出库
@@ -170,12 +355,13 @@
                            ediDto.outOrderType = "30";//盘亏出库单
                            break;
                    }
                    var result = HttpHelper.Post(url, ediDto.ToJsonString());
                    var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
                    if (resp != null && resp.code == "0")
                    {
                        order.OutStatus = "开始";
                        foreach (var item in deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id))
                        foreach (var item in order.Details)
                        {
                            item.Status = 1;
                            item.OotDetailStatus = "开始";
@@ -183,6 +369,7 @@
                    }
                    #endregion
                }
                _deliveryOrderServices.UpdateData(orders);
                _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails);
                return WebResponseContent.Instance.OK();
@@ -195,6 +382,10 @@
        }
        #endregion
        #region å…¥åº“完成上报ERP
        /// <summary>
        /// å…¥åº“报完成接口
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -9,6 +9,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Transactions;
using WIDESEA_Common;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.OrderEnum;
@@ -502,6 +503,338 @@
        #endregion
        #region åˆ›å»ºç›˜ç›ˆå…¥åº“单
        //public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo order)
        //{
        //    WebResponseContent content = new WebResponseContent();
        //    try
        //    {
        //        string WareCodeMJ = WarehouseEnum.麻精库.ObjToInt().ToString("000");
        //        string WareCodeLD = WarehouseEnum.冷冻库.ObjToInt().ToString("000");
        //        List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>();
        //        List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>();
        //        List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>();
        //        var codes = order.details.Select(x => x.goods_no).ToList();
        //        #region ç‰¹æ®Šåº“房
        //        if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD)
        //        {
        //            List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
        //            List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
        //            #region åº“存、库存批次平账
        //            foreach (var item in order.details)
        //            {
        //                //找库存批次信息
        //                Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
        //                if (inventory_Batch.SupplyQuantity != item.order_qty)
        //                {
        //                    _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP报报溢入库错误", $"盘盈入库单【{order.order_no}】物料编号【{item.goods_no}】物料批次【{item.batch_num}】的盘盈数量有误");
        //                    throw new Exception($"盘盈入库单【{order.order_no}】物料编号【{item.goods_no}】物料批次【{item.batch_num}】的盘盈数量有误");
        //                }
        //                //找所有库存
        //                List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
        //                foreach (var inventoryInfo in inventoryInfos)
        //                {
        //                    #region æ·»åŠ ç›˜ç›ˆå…¥åº“ä»»åŠ¡
        //                    if (inventoryInfo.SupplyQuantity != 0)
        //                    {
        //                        Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
        //                        {
        //                            WarehouseCode = inventoryInfo.WarehouseCode,
        //                            OperateType = OperateTypeEnum.自动完成.ToString(),
        //                            InsertTime = DateTime.Now,
        //                            TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
        //                            BatchNo = inventoryInfo.BatchNo,
        //                            MaterielName = inventoryInfo.MaterielName,
        //                            MaterielCode = inventoryInfo.MaterielCode,
        //                            MaterielSpec = inventoryInfo.MaterielSpec,
        //                            TaskType = TaskTypeEnum.ChenckIn.ObjToInt(),
        //                            CreateDate = DateTime.Now,
        //                            Creater = App.User.UserName,
        //                            LocationCode = inventoryInfo.LocationCode,
        //                            OrderNo = order.order_no,
        //                            StockQuantity = inventoryInfo.SupplyQuantity,
        //                            SupplyQuantity = 0,
        //                            Remark = "盘盈入库"
        //                        };
        //                        //_supplyTaskHtyService.AddData(supplyTask_Hty);
        //                        supplyTask_Hties.Add(supplyTask_Hty);
        //                    }
        //                    #endregion
        //                    inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
        //                    inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
        //                    inventoryInfo.SupplyQuantity = 0;
        //                    inventoryInfo.StockStatus = StockStatusEmun.入库完成.ObjToInt();
        //                }
        //                infosUp.AddRange(inventoryInfos);
        //                inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
        //                inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
        //                inventory_Batch.SupplyQuantity = 0;
        //                batchesUp.Add(inventory_Batch);
        //                //_inventoryInfoService.UpdateData(inventoryInfos);
        //                //_inventory_BatchServices.UpdateData(inventory_Batch);
        //            }
        //            #endregion
        //            #region åˆ›å»ºç›˜ç‚¹å•
        //            var entityOrder = new Dt_CabinOrder
        //            {
        //                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
        //                {
        //                    Goods_no = d.goods_no,
        //                    Order_qty = Math.Abs(d.order_qty),
        //                    Order_Inqty = Math.Abs(d.order_qty),
        //                    Batch_num = d.batch_num,
        //                    Exp_date = d.exp_date,
        //                    Reservoirarea = order.warehouse_no,
        //                    OrderDetailStatus = "已完成",
        //                    Status = 2,
        //                }).ToList()
        //            };
        //            _unitOfWorkManage.BeginTran();
        //            if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties);
        //            if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
        //            if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
        //            BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
        //            _unitOfWorkManage.CommitTran();
        //            //Repository.AddData(entityOrder);
        //            #endregion
        //        }
        //        #endregion
        //        else
        //        {
        //            List<Dt_CabinOrder> cabinOrdersAdd = new List<Dt_CabinOrder>();
        //            string WareCodeLK = WarehouseEnum.立库.ObjToInt().ToString("000");
        //            string WareCodeDJ = WarehouseEnum.大件库.ObjToInt().ToString("000");
        //            List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
        //            List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
        //            foreach (var item in order.details)
        //            {
        //                //找库存批次信息
        //                Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
        //                var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
        //                if (Qty != item.order_qty)
        //                {
        //                    _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP报报溢入库错误", $"盘盈入库单【{order.order_no}】物料编号【{item.goods_no}】物料批次【{item.batch_num}】的盘盈数量有误");
        //                    throw new Exception($"盘盈入库单【{order.order_no}】物料编号【{item.goods_no}】物料批次【{item.batch_num}】的盘盈数量有误");
        //                }
        //                //找所有库存
        //                List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
        //                //获取立库盘点差异数
        //                var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); //修改这里有可能只有大件库才会存在差异
        //                //var LkQty = Math.Abs(inventoryLK.SupplyQuantity);
        //                var LkQty = inventoryLK?.SupplyQuantity ?? 0;
        //                //获取大件库盘点差异数
        //                var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
        //                //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity));
        //                var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
        //                if (LkQty + DJQty != Qty)
        //                {
        //                    _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP报报溢入库错误", $"盘盈入库单【{order.order_no}】物料编号【{item.goods_no}】物料批次【{item.batch_num}】的盘盈数量有误");
        //                    throw new Exception($"【{order.order_no}】物料编号【{item.goods_no}】物料批次【{item.batch_num}】的物料信息与物料批次信息盘盈数量不符");
        //                }
        //                if (LkQty == 0)//立库无差异
        //                {
        //                    #region åº“存、库存批次平账
        //                    foreach (var inventoryInfo in inventoryInfos)
        //                    {
        //                        #region æ·»åŠ ç›˜ç›ˆå…¥åº“ä»»åŠ¡
        //                        if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity)
        //                        {
        //                            Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
        //                            {
        //                                WarehouseCode = inventoryInfo.WarehouseCode,
        //                                OperateType = OperateTypeEnum.自动完成.ToString(),
        //                                InsertTime = DateTime.Now,
        //                                TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
        //                                BatchNo = inventoryInfo.BatchNo,
        //                                MaterielName = inventoryInfo.MaterielName,
        //                                MaterielCode = inventoryInfo.MaterielCode,
        //                                MaterielSpec = inventoryInfo.MaterielSpec,
        //                                TaskType = TaskTypeEnum.ChenckIn.ObjToInt(),
        //                                CreateDate = DateTime.Now,
        //                                Creater = App.User.UserName,
        //                                LocationCode = inventoryInfo.LocationCode,
        //                                OrderNo = order.order_no,
        //                                StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
        //                                SupplyQuantity = 0,
        //                                Remark = "盘盈入库"
        //                            };
        //                            //_supplyTaskHtyService.AddData(supplyTask_Hty);
        //                            supplyTask_Hties.Add(supplyTask_Hty);
        //                        }
        //                        #endregion
        //                        inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
        //                        inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
        //                        inventoryInfo.SupplyQuantity = 0;
        //                        inventoryInfo.StockStatus = StockStatusEmun.入库完成.ObjToInt();
        //                    }
        //                    //_inventoryInfoService.UpdateData(inventoryInfos);
        //                    infosUp.AddRange(inventoryInfos);
        //                    inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
        //                    inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
        //                    inventory_Batch.SupplyQuantity = 0;
        //                    //_inventory_BatchServices.UpdateData(inventory_Batch);
        //                    batchesUp.Add(inventory_Batch);
        //                    #endregion
        //                    #region åˆ›å»ºå¤§ä»¶åº“盘点单
        //                    var entityOrder = new Dt_CabinOrder
        //                    {
        //                        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 = WareCodeDJ,
        //                        Details = order.details.Select(d => new Dt_CabinOrderDetail
        //                        {
        //                            Goods_no = d.goods_no,
        //                            Order_qty = Math.Abs(d.order_qty),
        //                            Order_Inqty = Math.Abs(d.order_qty),
        //                            Batch_num = d.batch_num,
        //                            Exp_date = d.exp_date,
        //                            Reservoirarea = WareCodeDJ,
        //                            OrderDetailStatus = "已完成",
        //                            Status = 2,
        //                        }).ToList()
        //                    };
        //                    //Repository.AddData(entityOrder);
        //                    //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
        //                    cabinOrdersAdd.Add(entityOrder);
        //                    #endregion
        //                }
        //                else // LkQty != 0 è¡¨ç¤ºç«‹åº“有差异
        //                {
        //                    #region å¤§ä»¶åº“库存平账
        //                    inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
        //                    foreach (var inventoryInfo in inventoryInfos)
        //                    {
        //                        #region æ·»åŠ ç›˜ç›ˆå…¥åº“ä»»åŠ¡
        //                        if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity)
        //                        {
        //                            Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
        //                            {
        //                                WarehouseCode = inventoryInfo.WarehouseCode,
        //                                OperateType = OperateTypeEnum.自动完成.ToString(),
        //                                InsertTime = DateTime.Now,
        //                                TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
        //                                BatchNo = inventoryInfo.BatchNo,
        //                                MaterielName = inventoryInfo.MaterielName,
        //                                MaterielCode = inventoryInfo.MaterielCode,
        //                                MaterielSpec = inventoryInfo.MaterielSpec,
        //                                TaskType = TaskTypeEnum.ChenckIn.ObjToInt(),
        //                                CreateDate = DateTime.Now,
        //                                Creater = App.User.UserName,
        //                                LocationCode = inventoryInfo.LocationCode,
        //                                OrderNo = order.order_no,
        //                                StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
        //                                SupplyQuantity = 0,
        //                                Remark = "盘盈入库"
        //                            };
        //                            //_supplyTaskHtyService.AddData(supplyTask_Hty);
        //                            supplyTask_Hties.Add(supplyTask_Hty);
        //                        }
        //                        #endregion
        //                        inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
        //                        inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
        //                        inventoryInfo.SupplyQuantity = 0;
        //                        inventoryInfo.StockStatus = StockStatusEmun.入库完成.ObjToInt();
        //                    }
        //                    //_inventoryInfoService.UpdateData(inventoryInfos);
        //                    infosUp.AddRange(inventoryInfos);
        //                    #endregion
        //                    #region åˆ›å»ºå¤§ä»¶åº“盘点单
        //                    if (DJQty != 0)
        //                    {
        //                        var cabinOrder = new Dt_CabinOrder
        //                        {
        //                            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 = WareCodeDJ,
        //                            Details = order.details.Select(d => new Dt_CabinOrderDetail
        //                            {
        //                                Goods_no = d.goods_no,
        //                                Order_qty = DJQty,
        //                                Order_Inqty = DJQty,
        //                                Batch_num = d.batch_num,
        //                                Exp_date = d.exp_date,
        //                                Reservoirarea = WareCodeDJ,
        //                                OrderDetailStatus = "已完成",
        //                                Status = 2,
        //                            }).ToList()
        //                        };
        //                        //Repository.AddData(cabinOrder);
        //                        //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand();
        //                        cabinOrdersAdd.Add(cabinOrder);
        //                    }
        //                    #endregion
        //                    #region åˆ›å»ºç«‹åº“盘点单
        //                    var entityOrder = new Dt_CabinOrder
        //                    {
        //                        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 = WareCodeLK,
        //                        Details = order.details.Select(d => new Dt_CabinOrderDetail
        //                        {
        //                            Goods_no = d.goods_no,
        //                            Order_qty = Math.Abs(LkQty),
        //                            Batch_num = d.batch_num,
        //                            Exp_date = d.exp_date,
        //                            Reservoirarea = WareCodeLK,
        //                            OrderDetailStatus = "新建",
        //                            Status = 0,
        //                        }).ToList()
        //                    };
        //                    //Repository.AddData(entityOrder);
        //                    //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
        //                    cabinOrdersAdd.Add(entityOrder);
        //                    #endregion
        //                }
        //            }
        //            _unitOfWorkManage.BeginTran();
        //            if (supplyTask_Hties.Count > 1) _supplyTaskHtyService.AddData(supplyTask_Hties);
        //            if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
        //            if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
        //            if (cabinOrdersAdd.Count > 0) BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand();
        //            _unitOfWorkManage.CommitTran();
        //            // æ·»åŠ äº‹åŠ¡æäº¤åŽçš„æ£€æŸ¥
        //            Console.WriteLine($"事务提交完成,准备返回。cabinOrdersAdd数量: {cabinOrdersAdd.Count}");
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        _unitOfWorkManage.RollbackTran();
        //        //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "创建盘盈入库单", ex.Message);
        //        //return content.Error(ex.Message);
        //        throw ex;
        //    }
        //    //return content;
        //    return content.OK($"盘盈入库单 {order.order_no} åˆ›å»ºæˆåŠŸ");
        //}
        #endregion
        #region åˆ›å»ºç›˜ç›ˆå…¥åº“单(修改原版因为前面订单创建失败导致后面也创建不了问题)
        public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo order)
        {
            WebResponseContent content = new WebResponseContent();
@@ -573,7 +906,6 @@
                        //_inventory_BatchServices.UpdateData(inventory_Batch);
                    }
                    #endregion
                    #region åˆ›å»ºç›˜ç‚¹å•
                    var entityOrder = new Dt_CabinOrder
                    {
@@ -596,13 +928,14 @@
                            Status = 2,
                        }).ToList()
                    };
                    _unitOfWorkManage.BeginTran();
                    _supplyTaskHtyService.AddData(supplyTask_Hties);
                    _inventoryInfoService.UpdateData(infosUp);
                    _inventory_BatchServices.UpdateData(batchesUp);
                    BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
                    _unitOfWorkManage.CommitTran();
                    //Repository.AddData(entityOrder);
                    using (var scop = new TransactionScope(TransactionScopeOption.RequiresNew))
                    {
                        if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties);
                        if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
                        if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
                        BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand();
                        scop.Complete();
                    }
                    #endregion
                }
                #endregion
@@ -627,9 +960,9 @@
                        //找所有库存
                        List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
                        //获取立库盘点差异数
                        var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First();
                        var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); //修改这里有可能只有大件库才会存在差异
                        //var LkQty = Math.Abs(inventoryLK.SupplyQuantity);
                        var LkQty = inventoryLK.SupplyQuantity;
                        var LkQty = inventoryLK?.SupplyQuantity ?? 0;
                        //获取大件库盘点差异数
                        var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
@@ -797,7 +1130,7 @@
                                Details = order.details.Select(d => new Dt_CabinOrderDetail
                                {
                                    Goods_no = d.goods_no,
                                    Order_qty =Math.Abs( LkQty),
                                    Order_qty = Math.Abs(LkQty),
                                    Batch_num = d.batch_num,
                                    Exp_date = d.exp_date,
                                    Reservoirarea = WareCodeLK,
@@ -811,25 +1144,27 @@
                            #endregion
                        }
                    }
                    _unitOfWorkManage.BeginTran();
                    _supplyTaskHtyService.AddData(supplyTask_Hties);
                    _inventoryInfoService.UpdateData(infosUp);
                    _inventory_BatchServices.UpdateData(batchesUp);
                    BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand();
                    _unitOfWorkManage.CommitTran();
                    using (var scop = new TransactionScope(TransactionScopeOption.RequiresNew))
                    {
                        if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties);
                        if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp);
                        if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp);
                        if (cabinOrdersAdd.Count > 0) BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand();
                        scop.Complete();
                    }
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "创建盘盈入库单", ex.Message);
                content.Error(ex.Message);
                throw ex;
            }
            return content;
            //return content;
            return content.OK($"盘盈入库单创建成功");
        }
        #endregion
        /// <summary>
        /// äººå·¥å…¥åº“完成
        /// </summary>
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs
@@ -354,9 +354,9 @@
                    List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>();
                    List<Dt_InventoryInfo> inventoryInfosUp = new List<Dt_InventoryInfo>();
                    List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
                    List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode));
                    var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode));
                    var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.入库完成.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK));
                    List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList();
                    var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList();
                    var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.入库完成.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK)).ToList();
                    foreach (var detail in outorder.details)
                    {
                        #region æŸ¥è¯¢åº“存批次和库存
@@ -1098,8 +1098,8 @@
                    List<Dt_DeliveryOrder> deliveryOrdersAdd = new List<Dt_DeliveryOrder>();
                    string WareCodeLK = WarehouseEnum.立库.ObjToInt().ToString("000");
                    string WareCodeDJ = WarehouseEnum.大件库.ObjToInt().ToString("000");
                    List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
                    List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
                    List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
                    List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
                    foreach (var item in order.details)
                    {
@@ -1115,8 +1115,8 @@
                        //找所有库存
                        List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
                        //获取立库盘点差异数
                        var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First();
                        var LkQty = inventoryLK.SupplyQuantity;
                        var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault();
                        var LkQty = inventoryLK?.SupplyQuantity??0;
                        //获取大件库盘点差异数
                        var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
                        var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs
@@ -5,6 +5,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_ISquareCabinServices;
@@ -187,7 +188,8 @@
            WebResponseContent content = new WebResponseContent();
            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";
                string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                if (string.IsNullOrEmpty(SearchInOrderDate)) SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                var requestData = new { searchDate = SearchInOrderDate };
@@ -239,13 +241,13 @@
                        else if (order.order_type == "3")//入库退料
                        {
                            #region è½¬æ¢ä¸ºå‡ºåº“单
                             UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo()
                            UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo()
                            {
                                order_no = order.order_no,
                                order_type = order.order_type,
                                client_no=order.supplier_no,
                                client_name=order.supplier_name,
                                account_time=order.account_time,
                                client_no = order.supplier_no,
                                client_name = order.supplier_name,
                                account_time = order.account_time,
                                warehouse_no = order.warehouse_no,
                                details = new List<UpstreamOutOrderDetail>()
                            };
@@ -286,6 +288,10 @@
        }
        #endregion
        #region èŽ·å–ERP出库单
        static string SearchOutOrderDate = "2025-11-01 00:00:00";
        public WebResponseContent GetOutOrder()
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_ISystemService;
@@ -14,6 +15,27 @@
    {
        public Sys_LogService(IRepository<Sys_Log> BaseDal) : base(BaseDal)
        {
        }
        /// <summary>
        /// å®šæ—¶åˆ é™¤æ—¥å¿—
        /// </summary>
        /// <returns></returns>
        public WebResponseContent ScheduledDeletion()
        {
            WebResponseContent response = new WebResponseContent();
            try
            {
                var deleteDate = DateTime.Now.AddDays(-7); // 7天前的日期
                var logs = BaseDal.QueryData(x => x.BeginDate < deleteDate).ToList();
                var deleteCount = BaseDal.DeleteData(logs);
            }
            catch (Exception ex)
            {
                return response.Error(ex.Message );
            }
            return response;
        }
    }
}