陈勇
2026-03-30 a4342e58b21d24428285f78abb95d6a87ccf5979
ÏîÄ¿´úÂë/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -39,6 +39,7 @@
    private readonly IDt_BDCConfigurationService _bdcConfigurationService;
    private readonly IDt_RoadWayRepository _roadWayRepository;
    private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
    private readonly IDt_CarBodyInfo_htyRepository _carBodyInfo_HtyRepository;
    public Dt_TaskService(IDt_TaskRepository BaseDal,
                                IUnitOfWorkManage unitOfWorkManage,
@@ -48,7 +49,7 @@
                                ITaskExecuteDetailRepository taskExecuteDetailRepository,
                                ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository,
                                IDt_StationManagerRepository stationManagerRepository,
                                ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IDt_CarBodyInfoRepository carBodyRepository, IDt_BDCConfigurationRepository bdcConfigurationRepository, IDt_BDCConfigurationService bDCConfigurationService, IDt_RoadWayRepository roadWayRepository, IDt_RoadWayInfoRepository roadWayInfoRepository) : base(BaseDal)
                                ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IDt_CarBodyInfoRepository carBodyRepository, IDt_BDCConfigurationRepository bdcConfigurationRepository, IDt_BDCConfigurationService bDCConfigurationService, IDt_RoadWayRepository roadWayRepository, IDt_RoadWayInfoRepository roadWayInfoRepository, IDt_CarBodyInfo_htyRepository carBodyInfo_HtyRepository) : base(BaseDal)
    {
        _unitOfWorkManage = unitOfWorkManage;
@@ -66,6 +67,7 @@
        _bdcConfigurationService = bDCConfigurationService;
        _roadWayRepository = roadWayRepository;
        _roadWayInfoRepository = roadWayInfoRepository;
        _carBodyInfo_HtyRepository = carBodyInfo_HtyRepository;
    }
    #region å¤–部接口方法
@@ -157,25 +159,26 @@
            stockInfo_Hty.FinishTime = DateTime.Now;
            stockInfo_Hty.OperateType = (int)OperateTypeEnum.自动完成;
            var boxinfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
            var carInfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
            carInfo.BodyStatus = 2;
            // äº‹åŠ¡å¤„ç†
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
                var isLocationUpdate = await _locationRepository.UpdateDataAsync(loc);                      //更新库位
                var isPalletHty = await _palletStockInfo_HtyRepository.AddDataAsync(stockInfo_Hty);         //添加历史库存记录
                var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId);                       //删除任务
                //await BaseDal.UpdateDataAsync(task);                                                        //取消删除任务,改为完成状态;并WMS界面由人工确认完成
                var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;                        //加入历史任务
                var isDelete = await _palletStockInfoRepository.DeleteDataAsync(stock);                     //删除库存
                //await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);                                  //删除库存明细
                //if (boxinfo != null)
                //{
                //    var isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxinfo.Id)
                //                         .Include(x => x.BoxingInfoDetails)
                //                         .ExecuteCommandAsync();                                           //删除组盘
                //}
                if (task.CarType != 2)//非彩车身出库后 æ¸…除组盘数据
                {
                    //删除组盘
                    Dt_CarBodyInfo_hty carInfo_Hty = carInfo.Adapt<Dt_CarBodyInfo_hty>();
                    carInfo_Hty.FinishTime = DateTime.Now;
                    carInfo_Hty.FinishType = (int)OperateTypeEnum.自动完成;
                    carInfo_Hty.sourceID = carInfo.Id;
                    await _carBodyInfo_HtyRepository.AddDataAsync(carInfo_Hty);
                    await _carBodyRepository.DeleteDataAsync(carInfo);
                }
            });
            return content.OK("任务完成成功", task.Remark);
@@ -241,6 +244,7 @@
                return await CompleteInboundTaskAsync(task);
            case (int)TaskOutboundTypeEnum.Outbound:
            case (int)TaskOutboundTypeEnum.OutTray:
                LogFactory.GetLog("任务完成").InfoFormat(true, "出库任务", "");
                return await CompleteStackTaskAsync(task);
            default:
@@ -335,7 +339,7 @@
        try
        {
            string palletCode = saveModel.MainData["palletCode"].ToString();
            string station = saveModel.MainData["station"].ToString();
            //string station = saveModel.MainData["station"].ToString();
            var barcode = JsonConvert.DeserializeObject<List<string>>(saveModel.MainData["palletCode"].ToString());
@@ -351,7 +355,7 @@
                    return content.Error("未查询到对应的库存信息");
                }
                if (stockInfo.StockStatus != 0) return content.Error($"指定失败:托盘{item}当前状态不允许指定出库");
                if (stockInfo.StockStatus != 0) return content.Error($"指定失败:库存滑橇{item}已锁定不允许指定出库");
                stockInfo.StockStatus = 1;
@@ -399,19 +403,17 @@
                //}
                //var stationInfo = stationInfos.FirstOrDefault();
                // åˆ›å»ºå¹¶æ·»åŠ ä»»åŠ¡åˆ°æ•°æ®åº“
                task = new Dt_Task
                {
                    Grade = 1,
                    Roadway = Outstation.Roadway,
                    TargetAddress = "RB043",
                    TargetAddress = carBody.CarType == 2 ? "RB043" : Outstation.stationChildCode,
                    Dispatchertime = DateTime.Now,
                    NextAddress = Outstation.stationChildCode,
                    OrderNo = null,
                    PalletCode = carBody.PalletCode,
                    PVI = carBody.PVI,
                    PVI = carBody.RFID,
                    SourceAddress = stockInfo.LocationCode,
                    CurrentAddress = stockInfo.LocationCode,
                    TaskState = (int)TaskOutStatusEnum.OutNew,
@@ -420,6 +422,8 @@
                    Creater = "System",
                    CreateDate = DateTime.Now,
                    TaskId = 0,
                    CarType = carBody.CarType,
                    RoadwayNo = stockInfo.RoadwayNo
                };
                // åˆ›å»ºä»»åŠ¡ä¼ è¾“ç”¨çš„DTO对象
@@ -431,7 +435,6 @@
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var tasks = new List<WMSTaskDTO>() { taskDTO };
                // å‘送任务请求到WMS
@@ -463,7 +466,6 @@
    }
    #endregion æŒ‡å®šä»»åŠ¡å‡ºåº“
    /// <summary>
    /// åˆ›å»ºä»»åŠ¡DTO
    /// </summary>
@@ -481,7 +483,8 @@
            Id = 0,
            TaskType = task.TaskType,
            pvi = task.PVI,
            NextAddress = task.NextAddress
            NextAddress = task.NextAddress,
            CarType = task.CarType
        };
    }
@@ -787,7 +790,6 @@
            {
                // åˆ›å»ºWebResponseContent对象
                var content = new WebResponseContent();
                var carInfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode );
                var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position);
                // èŽ·å–åº“ä½;