yanjinhui
2025-12-01 2b49f7643d15b74889d190f216630559006ed93a
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs
@@ -25,16 +25,22 @@
    {
        private readonly ICabinOrderServices _cabinOrderServices;
        private readonly IDeliveryOrderServices _deliveryOrderServices;
        private readonly ICabinOrderHtyServices _cabinOrderHtyServices;
        private readonly IDeliveryOrderHtyServices _deliveryOrderHtyServices;
        private readonly ISupplyTaskService _supplyTaskService;
        private readonly ISupplyTaskHtyService _supplyTaskHtyService;
        private readonly IInventory_BatchServices _inventoryBatchServices;
        private readonly IMessageInfoService _infoService;
        public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService) : base(BaseDal)
        public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService,ICabinOrderHtyServices cabinOrderlHtyServices,IDeliveryOrderHtyServices deliveryOrderHtyServices, ISupplyTaskHtyService supplyTaskHtyService) : base(BaseDal)
        {
            _cabinOrderServices = cabinOrderServices;
            _deliveryOrderServices = deliveryOrderServices;
            _supplyTaskService = supplyTaskService;
            _inventoryBatchServices = inventoryBatchServices;
            _infoService = infoService;
            _cabinOrderHtyServices = cabinOrderlHtyServices;
            _deliveryOrderHtyServices = deliveryOrderHtyServices;
            _supplyTaskHtyService = supplyTaskHtyService;
        }
        /// <summary>
@@ -52,7 +58,7 @@
                //根据id查询库存批次信息表,获取到他们的商品编码和批次号
                var inventoryBatches = _inventoryBatchServices.Repository.QueryData(x => keys.Contains(x.Id)); //查全部
                var url = "http://121.37.118.63:80/GYZ2/95fck/repositoryInfo";
                var url = "http://192.168.1.100:80/GYZ2/95fck/repositoryInfo";
                foreach (var item in inventoryBatches)
                {
                    var result = HttpHelper.Post(url, new { goods_no = item.MaterielCode, batch_num = item.BatchNo }.ToJsonString());
@@ -91,7 +97,22 @@
                    case "1": //入库
                        {
                            Dt_CabinOrder cabinOrder = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == Warecode).Includes(x => x.Details).First();
                            if (cabinOrder == null) throw new Exception($"未找到入库单号【{request.externalOrderNo}】的入库单信息");
                            if (cabinOrder == null)
                            {
                                //查找历史入库单,如果有就返回0给下游
                                    var inHty = _cabinOrderHtyServices.Repository.QueryData(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == Warecode).ToList();
                                    if (inHty.Count>0)
                                    {
                                        return new ApiResponse<Dt_InventoryInfo>
                                        {
                                            code = "0",
                                            msg = $"成功"
                                        };
                                }
                                throw new Exception($"未找到入库单号【{request.externalOrderNo}】的入库单信息");
                            }
                            if (cabinOrder.OdrderStatus == "已完成")
                                return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = $"成功" };
                            WebResponseContent content = _cabinOrderServices.CompleteLKInOrder(cabinOrder, request);
@@ -101,7 +122,19 @@
                    case "2":
                        {
                            Dt_DeliveryOrder deliveryOrder = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == Warecode).Includes(x => x.Details).First();
                            if (deliveryOrder == null) throw new Exception($"未找到出库单号【{request.externalOrderNo}】的出库单信息");
                            if (deliveryOrder == null)
                                {
                                var outHty = _deliveryOrderHtyServices.Repository.QueryData(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == Warecode).ToList();
                                    if (outHty.Count>0)
                                    {
                                        return new ApiResponse<Dt_InventoryInfo>
                                        {
                                            code = "0",
                                            msg = $"成功"
                                        };
                                }
                                    throw new Exception($"未找到出库单号【{request.externalOrderNo}】的出库单信息");
                                }
                            if (deliveryOrder.OutStatus == "已完成")
                                return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = $"成功" };
                            WebResponseContent content = _deliveryOrderServices.CompleteLKOutOrder(deliveryOrder, request);
@@ -115,7 +148,20 @@
                            foreach (var detail in request.details)
                            {
                                Dt_SupplyTask? supplyTask = supplyTasks.Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo).FirstOrDefault();
                                if (supplyTask == null) throw new Exception($"未找到订单号【{request.externalOrderNo}】物料编号【{detail.productCode}】的盘点任务");
                                if (supplyTask == null)
                                {
                                    var suppHty = _supplyTaskHtyService.Repository.QueryData(x => x.OrderNo == request.externalOrderNo && x.WarehouseCode == Warecode).ToList();
                                    if (suppHty.Count>0)
                                    {
                                        return new ApiResponse<Dt_InventoryInfo>
                                        {
                                            code = "0",
                                            msg = $"成功"
                                        };
                                    }
                                    throw new Exception($"未找到订单号【{request.externalOrderNo}】物料编号【{detail.productCode}】的盘点任务");
                                }
                                if (detail.isLossOrProfit == 1) // ç›˜äº
                                {
                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity - detail.ea;
@@ -542,7 +588,7 @@
        {
            try
            {
                var url = "http://121.37.118.63:80/GYZ2/95fck/exceptionLog";
                var url = "http://192.168.1.100:80/GYZ2/95fck/exceptionLog";
                var requestData = new
                {