chenyong
2025-05-15 0cce10d0db3ea3786edf4b322925057ad87814cf
CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -276,6 +276,36 @@
    #endregion 出库任务完成
    #region 火警任务完成
    public async Task<WebResponseContent> CompleteOutFireAlarmTaskAsync(Dt_Task task, DtStockInfo stock)
    {
        WebResponseContent content = new WebResponseContent();
        (var loc, var tas) = UpdateStockAndTaskStatus(stock, task);
        var taskHty = task.Adapt<Dt_Task_Hty>();
        taskHty.FinishTime = DateTime.Now;
        taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.人工完成 : (int)OperateTypeEnum.自动完成;
        taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
        DtStockInfo_Hty stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>();
        stockInfo_Hty.ModifyDate = DateTime.Now;
        // 事务处理
        await _unitOfWorkManage.UseTranAsync(async () =>
        {
            if (task.TaskType != (int)TaskOutboundTypeEnum.OutQuality)
            {
                await DeleteStockInfoAsync(stock.Id);
                await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
                await AddStockInfoHtyAsync(stockInfo_Hty);
                await UpdateLocationAsync(loc); //质检任务需要持续锁定库位
            }
            await DeleteTaskAsync(task.TaskId);
            await AddTaskHtyAsync(taskHty);
        });
        return content.OK("任务完成成功", task.Remark);
    }
    #endregion
    #region 移库任务完成
    /// <summary>
@@ -596,6 +626,11 @@
            case (int)TaskOutboundTypeEnum.OutNG:
                LogFactory.GetLog("任务完成").InfoFormat(true, "出库任务", "");
                return await CompleteStackTaskAsync(task, stock);
            case (int)TaskOutboundTypeEnum.OutFireAlarm:
                LogFactory.GetLog("任务完成").InfoFormat(true, "火警任务", "");
                return await CompleteOutFireAlarmTaskAsync(task, stock);
            case (int)TaskRelocationTypeEnum.Relocation:
                return await CompleteTransferTaskAsync(task, stock);
@@ -1617,6 +1652,7 @@
    /// 获取任务信息
    /// </summary>
    /// <returns></returns>
    ///
    public WebResponseContent GetTaskInfo()
    {
        WebResponseContent content = new WebResponseContent();
@@ -1641,7 +1677,10 @@
            return content.Error(ex.Message);
        }
    }
    /// <summary>
    /// 获取库存信息
    /// </summary>
    /// <returns></returns>
    public WebResponseContent GetStockInfo()
    {
        WebResponseContent content = new WebResponseContent();
@@ -1671,20 +1710,50 @@
            return content.Error(ex.Message);
        }
    }
    /// <summary>
    /// 获取货位状态
    /// </summary>
    /// <returns></returns>
    public WebResponseContent GetStockQuantity() {
        WebResponseContent content = new WebResponseContent();
        try {
            var location= _locationRepository.Db.Queryable<DtLocationInfo>().ToList();
            return content.OK(data: location);
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
        }
    }
    public WebResponseContent Getproductionvolume()
    {
        WebResponseContent content = new WebResponseContent();
        try {
            var now = DateTime.Now;
            var startOfDay = new DateTime(now.Year, now.Month, now.Day);
            var endOfDay1 = startOfDay.AddDays(-7);
            var taskHty= _task_HtyRepository.Db.Queryable<Dt_Task_Hty>().Where(it=>it.CreateDate> endOfDay1).ToList();
            return content.OK(data: taskHty);
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
        }
    }
    #endregion
    #endregion 外部接口方法
        #endregion 外部接口方法
    #region 内部调用方法
        #region 内部调用方法
    /// <summary>
    /// 创建一个新的任务
    /// </summary>
    /// <param name="model">任务模型</param>
    /// <returns>创建的任务</returns>
        /// <summary>
        /// 创建一个新的任务
        /// </summary>
        /// <param name="model">任务模型</param>
        /// <returns>创建的任务</returns>
    public async Task<Dt_Task> Create(Dt_Task model)
    {
        return await BaseDal.Create(model);