From 0864509e1eb593c3dedb66196ec19fe51437922b Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期一, 26 五月 2025 10:25:42 +0800
Subject: [PATCH] 新增货位管理,PDA扫码生成任务烘烤出料,烘烤回炉,空托回流

---
 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs |  277 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 249 insertions(+), 28 deletions(-)

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 342bfba..b0f3247 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"
@@ -18,6 +18,7 @@
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using System.Text.Json;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
@@ -25,15 +26,26 @@
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
-
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_ISystemRepository;
+using WIDESEA_Common;
+using WIDESEA_Core.Enums;
+using SqlSugar.Extensions;
 namespace WIDESEAWCS_TaskInfoService
 {
     public class TaskCZService : ServiceBase<DtCZTask, ITaskCZRepository>, ITaskCZService
     {
         private readonly ITaskRepository _taskRepository;
-        public TaskCZService(ITaskCZRepository BaseDal, ITaskRepository taskRepository) : base(BaseDal)
+        private readonly ITaskService _taskService;
+        private readonly ITaskCZDetailsRepository _detailsRepository;
+        private readonly IDt_StationinfoRepository _stationinfoRepository;
+
+        public TaskCZService(ITaskCZRepository BaseDal, IDt_StationinfoRepository stationinfoRepository, ITaskService taskService, ITaskRepository taskRepository, ITaskCZDetailsRepository detailsRepository) : base(BaseDal)
         {
             _taskRepository = taskRepository;
+            _detailsRepository = detailsRepository;
+            _taskService = taskService;
+            _stationinfoRepository = stationinfoRepository;
         }
 
         public Task<WebResponseContent> AddTaskCZAsync(CZTaskDto dto)
@@ -92,23 +104,57 @@
                     response.Error("浠诲姟涓嶅瓨鍦紒");
                     return Task.FromResult(response);
                 }
-                if (dto.Tags.Contains("姝f瀬"))
+                //if (dto.Tags.Contains("姝f瀬"))
+                //{
+                //    czTask.TaskZJFinishNumber += 1;
+                //}
+                //else
+                //{
+                //    czTask.TaskFJFinishNumber += 1;
+                //}
+                //if (czTask.TaskZJFinishNumber == czTask.TaskNumber || czTask.TaskFJFinishNumber == czTask.TaskNumber)
+                //{
+                //    czTask.TaskStatus = TaskInStatusEnum.InFinish.ToString();
+                //    czTask.TaskEndDate = DateTime.Now;
+                //}
+                //else
+                //{
+                czTask.TaskStatus = TaskInStatusEnum.Line_InExecuting.ToString();
+                //}
+
+                var details = new DtCZTaskDetails()
                 {
-                    czTask.TaskZJFinishNumber += 1;
-                }
-                else
-                {
-                    czTask.TaskFJFinishNumber += 1;
-                }
-                if (czTask.TaskZJFinishNumber == czTask.TaskNumber || czTask.TaskFJFinishNumber == czTask.TaskNumber)
-                {
-                    czTask.TaskStatus = TaskInStatusEnum.InFinish.ToString();
-                    czTask.TaskEndDate = DateTime.Now;
-                }
-                else
-                {
-                    czTask.TaskStatus = TaskInStatusEnum.Line_InExecuting.ToString();
-                }
+                    MaterialBarCode = dto.MaterialBarcode,
+                    MaterialType = dto.ProductCode,
+                    TaskDescription = "鍒涙櫤鎻愪氦浠诲姟瀹屾垚",
+                    TaskEndAddress = czTask.TaskEndAddress,
+                    TaskName = czTask.TaskName,
+                    TaskType = czTask.TaskType,
+                    TaskStatus = czTask.TaskStatus,
+                    TaskTaskID = czTask.TaskTaskID,
+                };
+                _detailsRepository.AddData(details);
+
+                //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
+                //{
+                //    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)
                 {
@@ -125,8 +171,9 @@
             }
             return Task.FromResult(response);
         }
+
         /// <summary>
-        /// 杈撻�佺嚎鍥炴祦
+        /// 绌烘墭鍥炴祦
         /// </summary>
         /// <param name="saveModel"></param>
         /// <returns></returns>
@@ -135,22 +182,196 @@
             WebResponseContent webResponseContent = new WebResponseContent();
             try
             {
+                //閫氳繃绔欑偣琛ㄥ垽鏂紦瀛樻灦鏄偅涓尯鍩熷幓閭f潯杈撻�佺嚎鍥炴祦鍙c�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘��
+                string Saddress = saveModel.MainData["sourceAddress"].ToString();
+                string Taddress = saveModel.MainData["targetAddress"].ToString();
+                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == Saddress);
+                if (task != null)
+                {
+                    webResponseContent.Error("姝ょ紦瀛樻灦宸插瓨鍦ㄤ换鍔★紒");
+                    return Task.FromResult(webResponseContent);
+                }
+                Dt_Stationinfo Stationinfo = _stationinfoRepository.QueryFirst(x => x.StationCode == Saddress);
+
+                Dt_Task dt_Task = new Dt_Task();
+                dt_Task.TaskNum = _taskService.GetTaskNum();
+                dt_Task.CreateDate = DateTime.Now;
+                dt_Task.Creater = "system";
+                dt_Task.CurrentAddress = Saddress;
+                dt_Task.SourceAddress = Saddress;
+                dt_Task.TaskState = (int)TaskInStatusEnum.InNew;
+                dt_Task.TaskType = (int)TaskOutboundTypeEnum.Outbound;
+                dt_Task.Grade = 1;
+                dt_Task.PalletCode = "";
+                if (Stationinfo.Area == "姝f瀬")
+                {
+                    dt_Task.TargetAddress = "姝f瀬鍥炴祦杈撻�佺嚎鍏ュ彛";
+                }
+                else
+                {
+                    dt_Task.TargetAddress = "璐熸瀬鍥炴祦杈撻�佺嚎鍏ュ彛";
+                }
+                dt_Task.NextAddress = dt_Task.TargetAddress;
+                dt_Task.Barcode = "";
+                dt_Task.Roadway = "AGV";
+                dt_Task.WMSId = 0;
+                dt_Task.Remark = "绌烘墭鍥炴祦";
+
+                Dt_Task dt_Tasks = new Dt_Task();
+                dt_Tasks.TaskNum = _taskService.GetTaskNum();
+                dt_Tasks.CreateDate = DateTime.Now;
+                dt_Tasks.Creater = "system";
+                if (Stationinfo.Area == "姝f瀬")
+                {
+                    dt_Task.CurrentAddress = "姝f瀬鍥炴祦杈撻�佺嚎鍑哄彛";
+                }
+                else
+                {
+                    dt_Task.CurrentAddress = "璐熸瀬鍥炴祦杈撻�佺嚎鍑哄彛";
+                }
+                dt_Tasks.SourceAddress = dt_Task.CurrentAddress;
+                dt_Tasks.TaskState = (int)TaskInStatusEnum.InPending;
+                dt_Tasks.TaskType = (int)TaskOutboundTypeEnum.Outbound;
+                dt_Tasks.Grade = 1;
+                dt_Tasks.PalletCode = "";
+                dt_Tasks.TargetAddress = Taddress;
+                dt_Tasks.NextAddress = Taddress;
+                dt_Tasks.Barcode = "";
+                dt_Tasks.Roadway = "AGV";
+                dt_Tasks.WMSId = 0;
+                dt_Tasks.Remark = "绌烘墭鍥炴祦";
+
+                var isTrue = _taskRepository.AddData(dt_Task);
+                var isTrue1 = _taskRepository.AddData(dt_Tasks);
+                webResponseContent.OK("浠诲姟涓嬪彂鎴愬姛锛�");
+            }
+            catch (Exception ex)
+            {
+                webResponseContent.Error(ex.Message);
+            }
+            return Task.FromResult(webResponseContent);
+        }
+        /// <summary>
+        /// 鐑樼儰鍑烘枡
+        /// </summary>
+        /// <param name="sourceAddress"></param>
+        /// <returns></returns>
+        public Task<WebResponseContent> OutBoundTask(string sourceAddress)
+        {
+            WebResponseContent webResponseContent = new WebResponseContent();
+            try
+            {
+                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == sourceAddress);
+                if (task != null)
+                {
+                    webResponseContent.Error("璧风偣宸插瓨鍦ㄤ换鍔★紒");
+                    return Task.FromResult(webResponseContent);
+                }
+                Dt_Stationinfo stationinfo = _stationinfoRepository.QueryFirst(x => x.Location_state == LocationStatusEnum.Free.ObjToInt());
+                if (stationinfo == null)
+                {
+                    webResponseContent.Error("鏈壘鍒扮┖缂撳瓨鏋舵斁缃紒");
+                    return Task.FromResult(webResponseContent);
+                }
+                Dt_Task tasks = _taskRepository.QueryFirst(x => x.SourceAddress == stationinfo.StationCode || x.TargetAddress == stationinfo.StationCode);
+                if (tasks != null)
+                {
+                    webResponseContent.Error("鏈壘鍒板彲鐢ㄧ紦瀛樻灦");
+                    return Task.FromResult(webResponseContent);
+                }
+                Dt_Task dt_Task = new Dt_Task()
+                {
+                    TaskNum = _taskService.GetTaskNum(),
+                    CreateDate = DateTime.Now,
+                    Creater = "system",
+                    CurrentAddress = sourceAddress,
+                    SourceAddress = sourceAddress,
+                    TaskState = (int)TaskInStatusEnum.InNew,
+                    TaskType = (int)TaskOutboundTypeEnum.Outbound,
+                    Grade = 1,
+                    PalletCode = "",
+                    TargetAddress = stationinfo.StationCode,
+                    NextAddress = stationinfo.StationCode,
+                    Barcode = "",
+                    Roadway = "AGV",
+                    WMSId = 0,
+                    Remark = "绌烘墭鍥炴祦"
+                };
+                var isTrue = _taskRepository.AddData(dt_Task);
+                webResponseContent.OK("浠诲姟涓嬪彂鎴愬姛锛�");
+            }
+            catch (Exception ex)
+            {
+                webResponseContent.Error(ex.Message);
+            }
+            return Task.FromResult(webResponseContent);
+        }
+        /// <summary>
+        /// 鐑樼儰鍥炵倝
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public Task<WebResponseContent> OutBoundTasks(SaveModel saveModel)
+        {
+            WebResponseContent webResponseContent = new WebResponseContent();
+            try
+            {
+                //閫氳繃绔欑偣琛ㄥ垽鏂紦瀛樻灦鏄偅涓尯鍩熷幓閭f潯杈撻�佺嚎鍥炴祦鍙c�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘��
                 string Saddress = saveModel.MainData["sourceAddress"].ToString();
                 string Taddress = saveModel.MainData["targetAddress"].ToString();
 
-                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == Saddress && x.TaskState == (int)TaskInStatusEnum.InPending && x.TargetAddress == "WaitBind");
-                if (task == null)
+                Dt_Stationinfo Stationinfo = _stationinfoRepository.QueryFirst(x => x.StationCode == Saddress);
+
+                Dt_Task dt_Task = new Dt_Task();
+                dt_Task.TaskNum = _taskService.GetTaskNum();
+                dt_Task.CreateDate = DateTime.Now;
+                dt_Task.Creater = "system";
+                dt_Task.CurrentAddress = Saddress;
+                dt_Task.SourceAddress = Saddress;
+                dt_Task.TaskState = (int)TaskInStatusEnum.InNew;
+                dt_Task.TaskType = (int)TaskOutboundTypeEnum.Outbound;
+                dt_Task.Grade = 1;
+                dt_Task.PalletCode = "";
+                if (Stationinfo.Area == "姝f瀬")
                 {
-                    webResponseContent.Error("浠诲姟涓嶅瓨鍦紒");
-                    return Task.FromResult(webResponseContent);
+                    dt_Task.TargetAddress = "姝f瀬鍥炴祦杈撻�佺嚎鍏ュ彛";
                 }
-                task.TargetAddress = Taddress;
-                task.TaskState = (int)TaskInStatusEnum.InNew;
-                var isTrue = _taskRepository.UpdateData(task);
-                if (isTrue)
+                else
                 {
-                    webResponseContent.OK("浠诲姟涓嬪彂鎴愬姛锛�");
+                    dt_Task.TargetAddress = "璐熸瀬鍥炴祦杈撻�佺嚎鍏ュ彛";
                 }
+                dt_Task.NextAddress = dt_Task.TargetAddress;
+                dt_Task.Barcode = "";
+                dt_Task.Roadway = "AGV";
+                dt_Task.WMSId = 0;
+                dt_Task.Remark = "鐑樼儰鍥炵倝";
+
+                Dt_Task dt_Tasks = new Dt_Task();
+                dt_Tasks.TaskNum = _taskService.GetTaskNum();
+                dt_Tasks.CreateDate = DateTime.Now;
+                dt_Tasks.Creater = "system";
+                if (Stationinfo.Area == "姝f瀬")
+                {
+                    dt_Task.CurrentAddress = "姝f瀬鍥炴祦杈撻�佺嚎鍑哄彛";
+                }
+                else
+                {
+                    dt_Task.CurrentAddress = "璐熸瀬鍥炴祦杈撻�佺嚎鍑哄彛";
+                }
+                dt_Tasks.SourceAddress = dt_Task.CurrentAddress;
+                dt_Tasks.TaskState = (int)TaskInStatusEnum.InPending;
+                dt_Tasks.TaskType = (int)TaskOutboundTypeEnum.Outbound;
+                dt_Tasks.Grade = 1;
+                dt_Tasks.PalletCode = "";
+                dt_Tasks.TargetAddress = Taddress;
+                dt_Tasks.NextAddress = Taddress;
+                dt_Tasks.Barcode = "";
+                dt_Tasks.Roadway = "AGV";
+                dt_Tasks.WMSId = 0;
+                dt_Tasks.Remark = "鐑樼儰鍥炵倝";
+                var isTrue = _taskRepository.AddData(dt_Task);
+                var isTrue1 = _taskRepository.AddData(dt_Tasks);
+                webResponseContent.OK("浠诲姟涓嬪彂鎴愬姛锛�");
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3