1
wangxinhui
2 天以前 cb3907de90eef531df10a078149b29c55ff86401
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs
@@ -531,7 +531,7 @@
            MesResponseContent content = new MesResponseContent();
            try
            {
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA72.ToString());
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == model.WarehouseCode);
                if (warehouse == null)
                {
                    return content.Error($"尾数仓信息未配置");
@@ -546,17 +546,58 @@
                {
                    WarehouseId = warehouse.WarehouseId,
                    TaskNo = model.TaskNo,
                    OrderStatus = OutOrderStatusEnum.未开始.ObjToInt(),
                    OrderStatus = OutOrderStatusEnum.出库中.ObjToInt(),
                    CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
                    ProductCode = model.ProductCode,
                    ProductName = model.ProductName,
                    ProductName = model.ProductCode,
                    ProductVersion = model.ProductVersion,
                    DateCode = model.DateCode,
                    RequiredQuantity = model.RequiredQuantity,
                    RequiredSetCount=model.RequiredSetCount,
                    FactoryCode = model.FactoryCode,
                    SaleOrder = model.SaleOrder,
                    SaleOrder = model.SaleOrder ?? "",
                    OrderType = model.InventoryType
                };
                if (model.DateCode.IndexOf("平库")>0 || warehouse.WarehouseCode==WarehouseEnum.HA101.ToString())
                {
                    Dt_Warehouse warehousePing = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
                    mesRworkOutboundOrder.WarehouseId = warehousePing.WarehouseId;
                    mesRworkOutboundOrder.OrderStatus = OutOrderStatusEnum.出库完成.ObjToInt();
                    _unitOfWorkManage.BeginTran();
                    _outboundService.RworkOutboundOrderService.Repository.AddData(mesRworkOutboundOrder);
                    MesInventoryInfo mesInventoryInfo = new MesInventoryInfo()
                    {
                        Warhouseno = warehousePing.WarehouseCode,
                        InternalPackageNumber = model.ProductCode,
                        SetCount = (int)model.RequiredSetCount,
                        EligiblePcsCount = (int)model.RequiredQuantity
                    };
                    MesProductOutBound mesProductOutBound = new MesProductOutBound()
                    {
                        TaskNo = mesRworkOutboundOrder.TaskNo,
                        ProductCode = mesRworkOutboundOrder.ProductCode,
                        ProductVersion = mesRworkOutboundOrder.ProductVersion,
                        DateCode = mesRworkOutboundOrder.DateCode,
                        SaleOrder = mesRworkOutboundOrder.SaleOrder,
                        InventoryInfo = new List<MesInventoryInfo> { mesInventoryInfo  }
                    };
                    if (model.ReceiveDown==EnableEnum.Enable.ObjToInt())
                    {
                        _unitOfWorkManage.RollbackTran();
                    }
                    else
                    {
                        //MES成品库存板出库同步
                        WebResponseContent responseContentPing = _outboundService.RworkOutboundOrderService.ProductOutBoundSync(mesProductOutBound);
                        if (!responseContentPing.Status)
                        {
                            throw new Exception("同步MES库存板出库失败,错误:" + responseContentPing.Message);
                        }
                        _unitOfWorkManage.CommitTran();
                    }
                    return content.OK($"提供返库单接收成功,ReceiveDown:{model.ReceiveDown}");
                }
                List<Dt_Task> tasks = new List<Dt_Task>();
                List<Dt_ProStockInfo>? proStockInfos = null;
                List<Dt_OutProStockInfo>? outProStockInfos = null;
@@ -605,19 +646,25 @@
                    if (!updateContent.Status)
                    {
                        _unitOfWorkManage.RollbackTran();
                        return content.Error(updateContent.Message);
                        throw new Exception(updateContent.Message);
                    }
                }
                _outboundService.RworkOutboundOrderService.Repository.AddData(mesRworkOutboundOrder);
                //MES成品库存板出库同步
                WebResponseContent responseContent = _outboundService.RworkOutboundOrderService.ProductOutBoundSync(_outboundService.RworkOutboundOrderService.MesProOutBound(mesRworkOutboundOrder, proStockInfoDetails));
                if (!responseContent.Status)
                if (model.ReceiveDown == EnableEnum.Enable.ObjToInt())
                {
                    throw new Exception("同步MES库存板出库失败,错误:" + responseContent.Message);
                    _unitOfWorkManage.RollbackTran();
                }
                _unitOfWorkManage.CommitTran();
                return content.OK("提供返库单接收成功");
                else
                {
                    //MES成品库存板出库同步
                    WebResponseContent responseContent = _outboundService.RworkOutboundOrderService.ProductOutBoundSync(_outboundService.RworkOutboundOrderService.MesProOutBound(mesRworkOutboundOrder, proStockInfoDetails));
                    if (!responseContent.Status)
                    {
                        throw new Exception("同步MES库存板出库失败,错误:" + responseContent.Message);
                    }
                    _unitOfWorkManage.CommitTran();
                }
                return content.OK($"提供返库单接收成功,ReceiveDown:{model.ReceiveDown}");
            }
            catch (Exception ex)
            {