zhanghonglin
5 小时以前 1e6a3ce80c38124fe8750f59956528204e696d4e
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -183,13 +183,14 @@
            else
            {
                stockInfo.StockStatus = (int)StockStatusEmun.直接出库;
                stockInfo.LocationCode = "2-52-1";
                task.SourceAddress = "1-52-1";
                task.TargetAddress = locations.LocationCode;
                task.SourceAddress = "2-52-1";
                task.TargetAddress = "1-52-1";
                task.Roadway = "SC01";
                task.Grade = 1;
                task.TaskType = (int)TaskTypeEnum.OutDirect;
                task.TaskState = (int)TaskStatusEnum.InNew;
                task.TaskState = (int)TaskStatusEnum.OutNew;
                task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
            }
@@ -440,7 +441,7 @@
                    //修改入库模式
                    Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1);
                    outstockinfo.OutMode = 0;
                    outstockinfo.OutMode = 1;
                    //开始数据库事务
                    _unitOfWorkManage.BeginTran();
@@ -481,7 +482,7 @@
                Dt_Task tasks = BaseDal.QueryFirst(x => x.Remark == task.Remark);
                if (tasks == null)
                {
                    Dt_OutboundOrder OutboundOrder =  _OutboundOrderRepository.QueryFirst(x=>x.MaterielName == stock.MaterielName && x.BoundOrderCode == task.Remark);
                    Dt_OutboundOrder OutboundOrder =  _OutboundOrderRepository.QueryFirst(x=>x.MaterielName == stock.MaterielName && x.Id == int.Parse(task.Remark));
                    //生成历史订单
                    Dt_OutboundOrder_Hty OutboundOrder_Hty = new Dt_OutboundOrder_Hty();
                    OutboundOrder_Hty.MaterielName = OutboundOrder.MaterielName;
@@ -622,12 +623,13 @@
                    LocationInfo = _LocationInfoRepository.QueryData(x => x.Remark == Types && x.LocationStatus == (int)LocationStatusEnum.EmptyBarrel).Take(Num).ToList();
                    if (LocationInfo.Count() == Num)
                    {
                        string StationName = "满桶出";
                        string StationName = "空桶出";
                        string StationNames = SelectStationManger(StationName);
                        int i = 1;
                        foreach (var item in LocationInfo)
                        {
                            item.LocationStatus = (int)LocationStatusEnum.Lock;
                            i++;
                            //创建任务
                            Dt_Task task = new Dt_Task();
                            task.SourceAddress = item.LocationCode;
@@ -636,7 +638,7 @@
                            task.Grade = 1;
                            task.TaskType = (int)TaskTypeEnum.OutEmpty;
                            task.TaskState = (int)TaskStatusEnum.OutNew;
                            task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
                            task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()+i);
                            tasks.Add(task);
                        }
                    }
@@ -836,7 +838,7 @@
                {
                    //修改入库模式
                    Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1);
                    outstockinfo.OutMode = 1;
                    outstockinfo.OutMode = 0;
                    OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
                    
                    //开始数据库事务
@@ -854,11 +856,62 @@
            //其他正常出库
            else
            {
                content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName, OutboundOrder.BoundOrderCode);
                if (content.Message == null || content.Message.Equals(""))
                //指定位置
                if (OutboundOrder.Location != null && !OutboundOrder.Location.Equals(""))
                {
                    OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
                    _OutboundOrderRepository.UpdateData(OutboundOrder);
                    //获取全部当前订单
                    List<Dt_OutboundOrder> OutboundOrders = _OutboundOrderRepository.QueryData(x => x.BoundOrderCode == OutboundOrder.BoundOrderCode);
                    List<Dt_StockInfo> StockInfos = new List<Dt_StockInfo>();
                    List<Dt_Task> tasks = new List<Dt_Task>();
                    List<Dt_LocationInfo> LocationInfos = new List<Dt_LocationInfo>();
                    foreach (var itme in OutboundOrders)
                    {
                        //锁定库存
                        Dt_StockInfo StockInfo = _StockInfoRepository.QueryFirst(x=>x.LocationCode == itme.Location);
                        StockInfo.StockStatus = (int)StockStatusEmun.出库锁定;
                        //锁定库位
                        Dt_LocationInfo LocationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == StockInfo.LocationCode);
                        LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
                        //创建任务
                        string StationName = "满桶出";
                        string StationNames = SelectStationManger(StationName);
                        Dt_Task task = new Dt_Task();
                        task.SourceAddress = StockInfo.LocationCode;
                        task.TargetAddress = StationNames;
                        task.Roadway = "SC01";
                        task.Grade = 1;
                        task.TaskType = (int)TaskTypeEnum.Outfull;
                        task.TaskState = (int)TaskStatusEnum.OutNew;
                        task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
                        task.Remark = itme.Id+"";
                        StockInfos.Add(StockInfo);
                        tasks.Add(task);
                        LocationInfos.Add(LocationInfo);
                    }
                    //开始数据库事务
                    _unitOfWorkManage.BeginTran();
                    _LocationInfoRepository.UpdateData(LocationInfos);
                    _StockInfoRepository.UpdateData(StockInfos);
                    BaseDal.AddData(tasks);
                    //发送给WCS
                    string address = AppSettings.Get("WCS");
                    if (!string.IsNullOrEmpty(address))
                    {
                        HttpHelper.Post($"{address}/api/Task/WMSaddListTask/", tasks.Serialize());
                    }
                    //提交事务
                    _unitOfWorkManage.CommitTran();
                }
                //自动分配
                else
                {
                    content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName, OutboundOrder.Id+"");
                    if (content.Message == null || content.Message.Equals(""))
                    {
                        OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
                        _OutboundOrderRepository.UpdateData(OutboundOrder);
                    }
                }
            }
            return content.Message;