From 9bae33c85d698987a6c9cf8ba8edbe9497b101dc Mon Sep 17 00:00:00 2001 From: wankeda <Administrator@DESKTOP-HAU3ST3> Date: 星期二, 15 四月 2025 17:05:56 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhuHaiChuangZhi/GanFengLiYeNew --- 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs | 49 ++++++----- 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/TaskCZDetailsRepository.cs | 35 ++++++++ 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/DtCZTaskDetails.cs | 62 +++++++++++++++ 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs | 6 + 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs | 47 +++++++---- 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskCZDetailsRepository.cs | 31 +++++++ 6 files changed, 188 insertions(+), 42 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskCZDetailsRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskCZDetailsRepository.cs" new file mode 100644 index 0000000..dd0afe0 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskCZDetailsRepository.cs" @@ -0,0 +1,31 @@ +锘�#region << 鐗� 鏈� 娉� 閲� >> +/*---------------------------------------------------------------- + * 鍛藉悕绌洪棿锛歐IDESEAWCS_ITaskInfoRepository + * 鍒涘缓鑰咃細鑳$搴� + * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36 + * 鐗堟湰锛歏1.0.0 + * 鎻忚堪锛� + * + * ---------------------------------------------------------------- + * 淇敼浜猴細 + * 淇敼鏃堕棿锛� + * 鐗堟湰锛歏1.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> + { + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/DtCZTaskDetails.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/DtCZTaskDetails.cs" new file mode 100644 index 0000000..cbda3ad --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/DtCZTaskDetails.cs" @@ -0,0 +1,62 @@ +锘縰sing 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; } + } +} \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/TaskCZDetailsRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/TaskCZDetailsRepository.cs" new file mode 100644 index 0000000..032f96a --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/TaskCZDetailsRepository.cs" @@ -0,0 +1,35 @@ +锘�#region << 鐗� 鏈� 娉� 閲� >> +/*---------------------------------------------------------------- + * 鍛藉悕绌洪棿锛歐IDESEAWCS_TaskInfoRepository + * 鍒涘缓鑰咃細鑳$搴� + * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36 + * 鐗堟湰锛歏1.0.0 + * 鎻忚堪锛� + * + * ---------------------------------------------------------------- + * 淇敼浜猴細 + * 淇敼鏃堕棿锛� + * 鐗堟湰锛歏1.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) + { + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs" index fe2d2e1..f07c233 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/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("鍙傛暟閿欒锛丗inishNum 蹇呴』涓� 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("鍙傛暟閿欒锛佽妫�鏌ャ�怓inishNum銆戯紒") + 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("鍙傛暟閿欒锛丗inishNum 蹇呴』涓� 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("鍙傛暟閿欒锛佽妫�鏌ャ�怓inishNum銆戯紒") + //}; + + //typeof(CZTaskBarCodeDto).GetProperty(property)?.SetValue(detail, dto.MaterialBarcode); + + //czTask.DtCZTaskDetails = JsonSerializer.Serialize(detail); var isTrue = BaseDal.UpdateData(czTask); if (isTrue) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs" index 582298d..e8fc093 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/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; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs" index 1f66fc7..7ba609f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs" @@ -1,5 +1,4 @@ -锘縰sing Newtonsoft.Json; -using WIDESEAWCS_Common.AGVEnum; +锘縰sing 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); } } } -- Gitblit v1.9.3