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