wanshenmean
2025-04-15 97ae26c59fe8c0f967903538e147240f8c1600a5
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs
@@ -17,6 +17,8 @@
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
using System.Text.Json;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
@@ -29,8 +31,13 @@
{
    public class TaskCZService : ServiceBase<DtCZTask, ITaskCZRepository>, ITaskCZService
    {
        public TaskCZService(ITaskCZRepository BaseDal) : base(BaseDal)
        private readonly ITaskRepository _taskRepository;
        private readonly ITaskCZDetailsRepository _detailsRepository;
        public TaskCZService(ITaskCZRepository BaseDal, ITaskRepository taskRepository, ITaskCZDetailsRepository detailsRepository) : base(BaseDal)
        {
            _taskRepository = taskRepository;
            _detailsRepository = detailsRepository;
        }
        public Task<WebResponseContent> AddTaskCZAsync(CZTaskDto dto)
@@ -56,7 +63,7 @@
                    TaskNumber = dto.Number,
                    TaskExecutor = "CZ",
                    TaskOrderNo = dto.OrderNo,
                    TaskOwner = "KH",
                    TaskOwner = "KH",
                    TaskProductCode = dto.ProductCode,
                    Creater = "KH"
                };
@@ -106,6 +113,39 @@
                {
                    czTask.TaskStatus = TaskInStatusEnum.Line_InExecuting.ToString();
                }
                var details = new DtCZTaskDetails()
                {
                    MaterialBarCode = dto.MaterialBarcode,
                    MaterialType = dto.ProductCode,
                    TaskDescription = "创智提交任务完成",
                    TaskEndAddress = czTask.TaskEndAddress,
                    TaskName = czTask.TaskName,
                    TaskType = czTask.TaskType,
                    TaskStatus = czTask.TaskStatus,
                };
                _detailsRepository.AddData(details);
                //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
                //{
                //    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)
                {
@@ -122,5 +162,39 @@
            }
            return Task.FromResult(response);
        }
        /// <summary>
        /// è¾“送线回流
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public Task<WebResponseContent> EmptyTask(SaveModel saveModel)
        {
            WebResponseContent webResponseContent = new WebResponseContent();
            try
            {
                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)
                {
                    webResponseContent.Error("任务不存在!");
                    return Task.FromResult(webResponseContent);
                }
                task.TargetAddress = Taddress;
                task.TaskState = (int)TaskInStatusEnum.InNew;
                var isTrue = _taskRepository.UpdateData(task);
                if (isTrue)
                {
                    webResponseContent.OK("任务下发成功!");
                }
            }
            catch (Exception ex)
            {
                webResponseContent.Error(ex.Message);
            }
            return Task.FromResult(webResponseContent);
        }
    }
}