代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskCZDetailsRepository.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/DtCZTaskDetails.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/TaskCZDetailsRepository.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskCZDetailsRepository.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ #region << ç æ¬ 注 é >> /*---------------------------------------------------------------- * å½å空é´ï¼WIDESEAWCS_ITaskInfoRepository * å建è ï¼è¡ç«¥åº * å建æ¶é´ï¼2024/8/2 16:13:36 * çæ¬ï¼V1.0.0 * æè¿°ï¼ * * ---------------------------------------------------------------- * ä¿®æ¹äººï¼ * ä¿®æ¹æ¶é´ï¼ * çæ¬ï¼V1.0.1 * ä¿®æ¹è¯´æï¼ * *----------------------------------------------------------------*/ #endregion << ç æ¬ 注 é >> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_ITaskInfoRepository { public interface ITaskCZDetailsRepository : IRepository<DtCZTaskDetails> { } } ´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/DtCZTaskDetails.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,62 @@ using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.DB.Models; namespace WIDESEAWCS_Model.Models { [SugarTable(nameof(DtCZTaskDetails), "ä»»å¡ä¿¡æ¯")] public class DtCZTaskDetails : BaseEntity { /// <summary> /// 主é®ID /// </summary> [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// <summary> /// ä»»å¡åç§° /// </summary> [SugarColumn(Length = 50, IsNullable = true)] public string TaskName { get; set; } /// <summary> /// ä»»å¡ç±»å /// </summary> [SugarColumn(Length = 50, IsNullable = true)] public string TaskType { get; set; } /// <summary> /// ä»»å¡ç¶æ /// </summary> [SugarColumn(Length = 50, IsNullable = true)] public string TaskStatus { get; set; } /// <summary> /// ä»»å¡æè¿° /// </summary> [SugarColumn(Length = 255, IsNullable = true)] public string TaskDescription { get; set; } /// <summary> /// ä»»å¡ç»ç¹å°å /// </summary> [SugarColumn(Length = 50, IsNullable = true)] public string TaskEndAddress { get; set; } /// <summary> /// ç©æç±»å /// </summary> [SugarColumn(Length = 50, IsNullable = true)] public string MaterialType { get; set; } /// <summary> /// ç©ææ¡ç /// </summary> [SugarColumn(Length = 100, IsNullable = true)] public string MaterialBarCode { get; set; } } } ´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/TaskCZDetailsRepository.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ #region << ç æ¬ 注 é >> /*---------------------------------------------------------------- * å½å空é´ï¼WIDESEAWCS_TaskInfoRepository * å建è ï¼è¡ç«¥åº * å建æ¶é´ï¼2024/8/2 16:13:36 * çæ¬ï¼V1.0.0 * æè¿°ï¼ * * ---------------------------------------------------------------- * ä¿®æ¹äººï¼ * ä¿®æ¹æ¶é´ï¼ * çæ¬ï¼V1.0.1 * ä¿®æ¹è¯´æï¼ * *----------------------------------------------------------------*/ #endregion << ç æ¬ 注 é >> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_TaskInfoRepository { public class TaskCZDetailsRepository : RepositoryBase<DtCZTaskDetails>, ITaskCZDetailsRepository { public TaskCZDetailsRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) { } } } ´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs
@@ -32,10 +32,12 @@ public class TaskCZService : ServiceBase<DtCZTask, ITaskCZRepository>, ITaskCZService { private readonly ITaskRepository _taskRepository; private readonly ITaskCZDetailsRepository _detailsRepository; public TaskCZService(ITaskCZRepository BaseDal, ITaskRepository taskRepository) : base(BaseDal) public TaskCZService(ITaskCZRepository BaseDal, ITaskRepository taskRepository, ITaskCZDetailsRepository detailsRepository) : base(BaseDal) { _taskRepository = taskRepository; _detailsRepository = detailsRepository; } public Task<WebResponseContent> AddTaskCZAsync(CZTaskDto dto) @@ -112,26 +114,37 @@ czTask.TaskStatus = TaskInStatusEnum.Line_InExecuting.ToString(); } if (dto.FinishNum is < 1 or > 4) throw new ArgumentException("åæ°é误ï¼FinishNum å¿ é¡»ä¸º 1-4"); var detail = dto.FinishNum == 1 ? new CZTaskBarCodeDto() : JsonSerializer.Deserialize<CZTaskBarCodeDto>(czTask.DtCZTaskDetails) ?? new CZTaskBarCodeDto(); var property = dto.FinishNum switch var details = new DtCZTaskDetails() { 1 => nameof(CZTaskBarCodeDto.BarCode1), 2 => nameof(CZTaskBarCodeDto.BarCode2), 3 => nameof(CZTaskBarCodeDto.BarCode3), 4 => nameof(CZTaskBarCodeDto.BarCode4), _ => throw new ArgumentOutOfRangeException("åæ°é误ï¼è¯·æ£æ¥ãFinishNumãï¼") MaterialBarCode = dto.MaterialBarcode, MaterialType = dto.ProductCode, TaskDescription = "åæºæäº¤ä»»å¡å®æ", TaskEndAddress = czTask.TaskEndAddress, TaskName = czTask.TaskName, TaskType = czTask.TaskType, TaskStatus = czTask.TaskStatus, }; _detailsRepository.AddData(details); typeof(CZTaskBarCodeDto).GetProperty(property)?.SetValue(detail, dto.MaterialBarcode); //if (dto.FinishNum is < 1 or > 4) // throw new ArgumentException("åæ°é误ï¼FinishNum å¿ é¡»ä¸º 1-4"); czTask.DtCZTaskDetails = JsonSerializer.Serialize(detail); //var detail = dto.FinishNum == 1 // ? new CZTaskBarCodeDto() // : JsonSerializer.Deserialize<CZTaskBarCodeDto>(czTask.DtCZTaskDetails) ?? new CZTaskBarCodeDto(); //var property = dto.FinishNum switch //{ // 1 => nameof(CZTaskBarCodeDto.BarCode1), // 2 => nameof(CZTaskBarCodeDto.BarCode2), // 3 => nameof(CZTaskBarCodeDto.BarCode3), // 4 => nameof(CZTaskBarCodeDto.BarCode4), // _ => throw new ArgumentOutOfRangeException("åæ°é误ï¼è¯·æ£æ¥ãFinishNumãï¼") //}; //typeof(CZTaskBarCodeDto).GetProperty(property)?.SetValue(detail, dto.MaterialBarcode); //czTask.DtCZTaskDetails = JsonSerializer.Serialize(detail); var isTrue = BaseDal.UpdateData(czTask); if (isTrue) ´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs
@@ -9,11 +9,13 @@ { private readonly ITaskRepository _taskRepository; private readonly ITaskCZRepository _taskCZRepository; private readonly ITaskCZDetailsRepository _detailsRepository; public CommonAGVJob(ITaskRepository taskRepository, ITaskCZRepository taskCZRepository) public CommonAGVJob(ITaskRepository taskRepository, ITaskCZRepository taskCZRepository, ITaskCZDetailsRepository detailsRepository) { _taskRepository = taskRepository; _taskCZRepository = taskCZRepository; _detailsRepository = detailsRepository; } public void Dispose() @@ -25,7 +27,7 @@ { AGV agv = (AGV)context.JobDetail.JobDataMap.Get("JobParams"); SendTaskAGV.SendAGVTask(agv, _taskRepository); UpdateTaskAGV.UpdateTask(agv, _taskRepository, _taskCZRepository); UpdateTaskAGV.UpdateTask(agv, _taskRepository, _taskCZRepository, _detailsRepository); return Task.CompletedTask; } ´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs
@@ -1,5 +1,4 @@ using Newtonsoft.Json; using WIDESEAWCS_Common.AGVEnum; using WIDESEAWCS_Common.AGVEnum; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_ITaskInfoRepository; @@ -204,7 +203,6 @@ } } //agvtask_HtyRepository.AddTaskHistory(agvTask, OperateType.Finished.ToString()); _taskRepository.DeleteData(agvTask); plcClient.Communicator.Write(taskFbInteractive2, 1); @@ -259,7 +257,7 @@ } } public static void UpdateTask(AGV plcClient, ITaskRepository taskRepository, ITaskCZRepository _taskCZRepository) public static void UpdateTask(AGV plcClient, ITaskRepository taskRepository, ITaskCZRepository _taskCZRepository, ITaskCZDetailsRepository _detailsRepository) { // 使ç¨Interlocked.Exchangeä¿è¯å䏿¶é´åªæä¸ä¸ªçº¿ç¨å¯ä»¥æ§è¡ä»»å¡æ´æ° if (Interlocked.Exchange(ref _readUpdateAGVTaskSignalso, 1) == 0) @@ -365,30 +363,35 @@ { // æåæºè¿çç®± // TODO: è°ç¨åæºæ¥å£è·å宿´æ¡ç var czTask = _taskCZRepository.QueryFirst(x => x.Id == agvTask.WMSId); CZTaskBarCodeDto barCodeDto = JsonConvert.DeserializeObject<CZTaskBarCodeDto>(czTask.DtCZTaskDetails); var materials = Enumerable.Range(0, 2) .Select(i => new BakingClass { MaterialType = czTask.TaskProductCode, BarCode = GetBarCodeByIndex(barCodeDto, i, hasDesc: !string.IsNullOrEmpty(czTask.TaskDesc)) }) .ToList(); //var czTask = _taskCZRepository.QueryFirst(x => x.Id == agvTask.WMSId); //CZTaskBarCodeDto barCodeDto = JsonConvert.DeserializeObject<CZTaskBarCodeDto>(czTask.DtCZTaskDetails); //var materials = Enumerable.Range(0, 2) // .Select(i => new BakingClass // { // MaterialType = czTask.TaskProductCode, // BarCode = GetBarCodeByIndex(barCodeDto, i, hasDesc: !string.IsNullOrEmpty(czTask.TaskDesc)) // }) // .ToList(); var details = _detailsRepository.QueryData(x => x.TaskEndAddress == agvTask.TargetAddress && x.TaskName == agvTask.Roadway).OrderBy(x => x.CreateDate).ToList(); if (details.Count >= 2) { details = details.Take(2).ToList(); } var materials = details.Select(x => new BakingClass { MaterialType = x.MaterialType, BarCode = x.MaterialBarCode, }).ToList(); MESback WMSbackresult = MESAPIInvoke.BakingFeedingBinding(agvTask.TargetAddress, materials); if (WMSbackresult.Code > 0) { new Exception(WMSbackresult.Message); return; } else { if (!string.IsNullOrEmpty(czTask.TaskDesc)) { czTask.TaskDesc = "ä»»å¡å®æä¸¤æ¬¡æ¬¡"; _taskCZRepository.DeleteData(czTask); } else { czTask.TaskDesc = "ä»»å¡å®æä¸æ¬¡"; _taskCZRepository.UpdateData(czTask); } // å é¤detailsæ°æ® _detailsRepository.DeleteData(details); } } }