刘磊
2 天以前 1c7d84d153f22148c7c8dbf80aa646edb0c53648
ÏîÄ¿´úÂë/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs
@@ -33,92 +33,102 @@
                if (result.plantCode != "1052") throw new Exception("非本工厂订单,请重试");
                var palletStockInfos = _palletStockInfoRepository.QueryData(x => x.OrderID == result.workOrderNo);
                var ListTaskDto = new List<WMSTaskDTO>();
                var ListTask = new List<Dt_Task>();
                //如存在预绑定工单的库存,则优先出库预绑定的工单
                if (palletStockInfos != null || palletStockInfos.Count != 0)
                var ListAssemblyOrderInfo = new List<Dt_AssemblyOrderInfo>();
                foreach (var item in result.data)
                {
                    foreach (var item in palletStockInfos)
                    var palletStockInfos = _palletStockInfoRepository.QueryData(x => x.OrderID == item.workOrderNo);
                    //如存在预绑定工单的库存,则优先出库预绑定的工单
                    if (palletStockInfos != null || palletStockInfos.Count != 0)
                    {
                        Dt_Task task = new Dt_Task()
                        foreach (var item1 in palletStockInfos)
                        {
                            CurrentAddress = item.LocationCode,
                            Grade = 2,
                            NextAddress = item.LocationCode,
                            PalletCode = item.PalletCode,
                            OrderNo = item.OrderID,
                            PVI = item.PVI,
                            Modifier = item.Modifier,
                            Roadway = item.RoadwayNo,
                            SourceAddress = item.LocationCode,
                            TaskNum = _taskRepository.GetTaskNo().Result,
                            TaskState = (int)TaskOutStatusEnum.OutNew,
                            TaskType = (int)TaskOutboundTypeEnum.Outbound,
                            TargetAddress = "",
                            Creater = "System",
                            CreateDate = DateTime.Now
                        };
                        ListTask.Add(task);
                            Dt_Task task = new Dt_Task()
                            {
                                CurrentAddress = item1.LocationCode,
                                Grade = 2,
                                NextAddress = item1.LocationCode,
                                PalletCode = item1.PalletCode,
                                OrderNo = item1.OrderID,
                                PVI = item1.PVI,
                                Modifier = item1.Modifier,
                                Roadway = item1.RoadwayNo,
                                SourceAddress = item1.LocationCode,
                                TaskNum = _taskRepository.GetTaskNo().Result,
                                TaskState = (int)TaskOutStatusEnum.OutNew,
                                TaskType = (int)TaskOutboundTypeEnum.Outbound,
                                TargetAddress = "",
                                Creater = "System",
                                CreateDate = DateTime.Now
                            };
                            ListTask.Add(task);
                        WMSTaskDTO taskDTO = new WMSTaskDTO()
                        {
                            Grade = task.Grade.Value,
                            PalletCode = task.PalletCode,
                            SourceAddress = task.SourceAddress,
                            TargetAddress = task.TargetAddress,
                            RoadWay = task.Roadway,
                            TaskState = task.TaskState.Value,
                            TaskType = task.TaskType,
                            TaskNum = task.TaskNum.Value
                        };
                        ListTaskDto.Add(taskDTO);
                            WMSTaskDTO taskDTO = new WMSTaskDTO()
                            {
                                Grade = task.Grade.Value,
                                PalletCode = task.PalletCode,
                                SourceAddress = task.SourceAddress,
                                TargetAddress = task.TargetAddress,
                                RoadWay = task.Roadway,
                                TaskState = task.TaskState.Value,
                                TaskType = task.TaskType,
                                TaskNum = task.TaskNum.Value
                            };
                            ListTaskDto.Add(taskDTO);
                        }
                    }
                    else
                    {
                        //如不存在预绑定工单车辆,则按照工单信息匹配库存车辆
                        //todo ç‰¹å¾ä¿¡æ¯åŒ¹é…
                        _palletStockInfoRepository.QueryData(x => x.PVI == item.pvi);
                    }
                    Dt_AssemblyOrderInfo assemblyOrderInfo = new Dt_AssemblyOrderInfo
                    {
                        biwMaterial = item.biwMaterial,
                        CreateDate = DateTime.Now,
                        Creater = "System",
                        orderType = item.orderType,
                        pbMaterial = item.pbMaterial,
                        plantCode = result.plantCode,
                        pvi = item.pvi,
                        sequenceNo = item.sequenceNo,
                        spare1 = item.spare1,
                        spare2 = item.spare2,
                        spare3 = item.spare3,
                        splitStrategy = result.splitStrategy,
                        vehicleCharacteristic = item.vehicleCharacteristic,
                        vehicleCode = item.vehicleCode,
                        vehicleOrderNo = item.vehicleOrderNo,
                        workOrderNo = item.workOrderNo,
                        workOrderSendStatus = item.workOrderSendStatus,  //1-排产 2-撤回
                    };
                    ListAssemblyOrderInfo.Add(assemblyOrderInfo);
                }
                else
                {
                    //如不存在预绑定工单车辆,则按照工单信息匹配库存车辆
                    //todo ç‰¹å¾ä¿¡æ¯åŒ¹é…
                    _palletStockInfoRepository.QueryData(x => x.PVI == result.pvi);
                }
                pushOrderInfo orderInfo = new pushOrderInfo
                {
                };
                Dt_OutOrder outOrder = new()
                {
                    CreateDate = DateTime.Now,
                    Creater = "System",
                    Status = 1,
                    //UpperOutOrderId = result.workOrderNo,
                    OrderNumber = result.workOrderNo,
                    WarehouseId = 1,
                    OrderDate = DateTime.Now,
                    UpperOutOrderId = 1,
                    Remarks = "测试订单"
                };
                var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
                var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
                if (wmsBase == null || ipAddress == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddress = wmsBase + ipAddress;
                var WCSresult = HttpHelper.PostAsync(wmsIpAddress, ListTaskDto.ToJsonString()).Result;
                var content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult);
                _unitOfWorkManage.BeginTran();
                _OutOrderRepository.AddData(outOrder);
                _taskRepository.AddData(ListTask);
                if (ListTaskDto.Count > 0)
                {
                    var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
                    var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
                    if (wmsBase == null || ipAddress == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + ipAddress;
                    var WCSresult = HttpHelper.PostAsync(wmsIpAddress, ListTaskDto.ToJsonString()).Result;
                    var content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult);
                    _taskRepository.AddData(ListTask);
                }
                _assemblyOrderInfoRepository.AddData(ListAssemblyOrderInfo);
                _unitOfWorkManage.CommitTran();
                responseContent.OK();