chengsc
3 天以前 4c7f2d26fd6041d32f4e291559bc443671493246
Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs
@@ -10,6 +10,7 @@
using NewLife;
using WCS.Application.Entity;
using WCS.Application.Service.WcsTask.Dto;
using WCS.Application.Util;
namespace WCS.Application;
@@ -25,6 +26,7 @@
    private readonly IHubContext<TaskLogHub, ITaskLogHub> _taskLogHubContext;
    private readonly SqlSugarRepository<WcsCheckTask> _wcsCheckTaskRep;
    private readonly SqlSugarRepository<WcsMateialPzInfo> _wcsMateialPzInfoRep;
    private readonly object _lockObj = new object();
    public WcsTaskService(SqlSugarRepository<WcsTask> wcsTaskRep, IHubContext<TaskLogHub, ITaskLogHub> taskLogHubContext, SqlSugarRepository<WcsCheckTask> wcsCheckTaskRep, SqlSugarRepository<WcsMateialPzInfo> wcsMateialPzInfoRep)
    {
@@ -86,6 +88,13 @@
        {
            //生成任务号
            entity.TaskNo = GetTaskCode();
            // 判断是否穿梭车任务
            if (entity.Type != PLCTypeEnum.AGV)
            {
                entity.TaskId = FourWayCarUtil.GetTaskId();
            }
            if (string.IsNullOrEmpty(entity.TaskNo))
            {
                throw Oops.Bah("任务号生成失败");
@@ -229,6 +238,16 @@
                {
                    modTask.IsSuccess = TaskSuccessEnum.Fail;
                    modTask.CancelDate = DateTime.Now;//取消时间
                }
                //如果是四向车任务
                if (modTask.Type == PLCTypeEnum.ShuttleCar)
                {
                    var carTaskList = _db.Queryable<WcsCarTasks>().Where(m => m.Status <= TaskStatusEnum.Doing && m.IsDelete == false).ToList();
                    foreach (var carTask in carTaskList)
                    {
                        carTask.Status = input.Status;
                    }
                    await _wcsTaskRep.Context.Updateable(carTaskList).ExecuteCommandAsync();
                }
                modTask.Status = input.Status;
                modTask.Levels = 999;
@@ -422,31 +441,35 @@
    [NonAction]
    public string GetTaskCode(string codeFlag = "WCS")
    {
        var list = _db.Queryable<WcsTask>().Where(m => m.TaskNo.StartsWith("WCS")).ToList();
        string maxNo = list.Max(m => m.TaskNo);
        if (!string.IsNullOrEmpty(maxNo))
        lock (_lockObj)
        {
            maxNo = maxNo.Substring(codeFlag.Length);
        }
        //获取数据库时间八位
        string date = DateTime.Now.ToString("yyyyMMdd").Trim();
        string no = "";
        if (string.IsNullOrEmpty(maxNo))
        {
            no = codeFlag + date + "0001";
        }
        else
        {
            if (maxNo.Length == 12 && maxNo.Substring(0, 8) == date)
            var list = _db.Queryable<WcsTask>().Where(m => m.TaskNo.StartsWith("WCS")).ToList();
            string maxNo = list.Max(m => m.TaskNo);
            if (!string.IsNullOrEmpty(maxNo))
            {
                int lastNo = Convert.ToInt32(maxNo.Substring(8, 4)) + 1;
                no = codeFlag + date + (lastNo.ToString().PadLeft(4, '0'));
                maxNo = maxNo.Substring(codeFlag.Length);
            }
            else
            //获取数据库时间八位
            string date = DateTime.Now.ToString("yyyyMMdd").Trim();
            string no = "";
            if (string.IsNullOrEmpty(maxNo))
            {
                no = codeFlag + date + "0001";
            }
            else
            {
                if (maxNo.Length == 12 && maxNo.Substring(0, 8) == date)
                {
                    int lastNo = Convert.ToInt32(maxNo.Substring(8, 4)) + 1;
                    no = codeFlag + date + (lastNo.ToString().PadLeft(4, '0'));
                }
                else
                {
                    no = codeFlag + date + "0001";
                }
            }
            return no;
        }
        return no;
    }
}