chengsc
2025-03-28 e00c9e03eeaffad919cf16c95b2d6048e8abfb9d
Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -5,8 +5,10 @@
using System.Text;
using System.Threading.Tasks;
using Dm;
using Model.InterFaceModel;
using Model.ModelDto.BllCheckDto;
using Model.ModelDto.PdaDto;
using Newtonsoft.Json;
using SqlSugar;
using Utility;
using WMS.BLL.LogServer;
@@ -780,7 +782,9 @@
        /// <param name="palletNo"></param>
        /// <param name="areaNo"></param>
        /// <param name="ruku"></param>
        public async Task AgvTransport(string palletNo, string areaNo, string ruku, int userId)
        public async Task AgvTransport(string palletNo, string areaNo, string ruku, string url, int userId)
        {
            try
        {
            if (string.IsNullOrEmpty(palletNo))
            {
@@ -799,7 +803,7 @@
            var log = await Db.Queryable<LogTask>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo && (w.Status == "0" || w.Status == "1"));
            if (log != null)
            {
                throw Oops.Bah("该托盘已有小车等待执行或正在执行的任务!");
                    throw Oops.Bah("该托盘已有等待执行或正在执行的任务!");
            }
            var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo);
            if (stockDetail == null)
@@ -828,7 +832,7 @@
            {
                throw Oops.Bah("托盘储位信息不存在,请检查!");
            }
            if (stockDetail.WareHouseNo != "W02")
                if (stockDetail.WareHouseNo != "W04")
            {
                throw Oops.Bah("该托盘未在平库内,请检查!");
            }
@@ -874,12 +878,12 @@
            await Db.Insertable(exTask).ExecuteCommandAsync();
            //修改库存明细信息
            stockDetail.Status = "4";//移库锁定
            stockDetail.LockQty = stockDetail.Qty;//锁定库存数量
            await Db.Updateable(stockDetail).ExecuteCommandAsync();
            //修改库存信息
            stock.LockQty += (decimal)stockDetail.Qty;
            await Db.Updateable(stock).ExecuteCommandAsync();
                //stockDetail.Status = "4";//移库锁定
                //stockDetail.LockQty = stockDetail.Qty;//锁定库存数量
                //await Db.Updateable(stockDetail).ExecuteCommandAsync();
                ////修改库存信息
                //stock.LockQty += (decimal)stockDetail.Qty;
                //await Db.Updateable(stock).ExecuteCommandAsync();
            //修改起始储位地址状态
            storageLocat.Status = "5";//0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 
@@ -894,9 +898,54 @@
            //添加操作日志记录
            var k = new OperationCrServer().AddLogOperationCr("PDA模块", "AGV转运", palletNo, "移库", $"PDA呼叫小车对托盘号:{palletNo}发起转运", userId);
            #region 呼叫小车代码
                var outDto = new List<OutCommandDto>();
                outDto.Add(new OutCommandDto()
                {
                    PalletNo = exTask.PalletNo,//托盘号
                    StartLocate = exTask.StartLocat, // 起始位置
                    StartRoadway = storageLocat.RoadwayNo,//其实巷道
                    EndLocate = EndLocat, // 目标位置
                    TaskNo = exTask.TaskNo, // 任务号
                    TaskType = "2",// 任务类型 (出库)0入 1出 2移
                    OutMode = "",  //出库口
                    Order = 1
            #endregion
                });
                // 正式运行程序放开
                var list2 = outDto.Select(m => m.TaskNo).ToList();
                var jsonData = JsonConvert.SerializeObject(outDto);
                string response = "";
                try
                {
                    var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
                    //response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS");
                    var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss")
                    //////解析返回数据
                    //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
                    //if (wcsModel.StatusCode == 0)
                    //{
                    //    //更改任务的发送返回时间//
                    new TaskServer().EditTaskIssueOk(list2, time1, time2);
                    //}
                    //if (wcsModel.StatusCode == -1)
                    //{
                    //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
                    //    throw new Exception(wcsModel.Msg);
                    //}
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        /// <summary>
        /// agv转运呼叫小车取货