#region << 版 本 注 释 >>
|
|
/*----------------------------------------------------------------
|
* 命名空间:WIDESEAWCS_TaskInfoService
|
* 创建者:胡童庆
|
* 创建时间:2024/8/2 16:13:36
|
* 版本:V1.0.0
|
* 描述:
|
*
|
* ----------------------------------------------------------------
|
* 修改人:
|
* 修改时间:
|
* 版本:V1.0.1
|
* 修改说明:
|
*
|
*----------------------------------------------------------------*/
|
|
#endregion << 版 本 注 释 >>
|
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
|
using System.Text.Json;
|
using WIDESEAWCS_Common.TaskEnum;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.BaseServices;
|
using WIDESEAWCS_DTO.TaskInfo;
|
using WIDESEAWCS_ITaskInfoRepository;
|
using WIDESEAWCS_ITaskInfoService;
|
using WIDESEAWCS_Model.Models;
|
|
namespace WIDESEAWCS_TaskInfoService
|
{
|
public class TaskCZService : ServiceBase<DtCZTask, ITaskCZRepository>, ITaskCZService
|
{
|
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)
|
{
|
var response = new WebResponseContent();
|
try
|
{
|
var task = BaseDal.QueryFirst(x => (x.TaskTaskID == dto.DTaskId) || (x.TaskEndAddress == dto.InputValue) || (x.TaskType == dto.TaskType));
|
if (task != null)
|
{
|
response.Error("任务已存在,请勿重复添加!");
|
}
|
var taskModel = new DtCZTask()
|
{
|
TaskTaskID = dto.DTaskId,
|
TaskType = dto.TaskType,
|
TaskEndAddress = dto.InputValue,
|
TaskStatus = TaskInStatusEnum.InNew.ToString(),
|
CreateDate = DateTime.Now,
|
TaskStartDate = DateTime.Now,
|
TaskEndDate = DateTime.Now.AddDays(1),
|
TaskName = dto.TaskType.ToString(),
|
TaskNumber = dto.Number,
|
TaskExecutor = "CZ",
|
TaskOrderNo = dto.OrderNo,
|
TaskOwner = "KH",
|
TaskProductCode = dto.ProductCode,
|
Creater = "KH"
|
};
|
var isTrue = BaseDal.AddData(taskModel) > 0;
|
if (isTrue)
|
response.OK("任务添加成功!");
|
else
|
response.Error("任务添加失败!");
|
}
|
catch (System.Exception ex)
|
{
|
response.Error(ex.Message);
|
}
|
return Task.FromResult(response);
|
}
|
|
/// <summary>
|
/// 完成任务
|
/// </summary>
|
/// <param name="dto"></param>
|
/// <returns></returns>
|
public Task<WebResponseContent> FinishTask(CZTaskFinshDto dto)
|
{
|
WebResponseContent response = new WebResponseContent();
|
try
|
{
|
var czTask = BaseDal.QueryFirst(x => x.TaskTaskID == dto.TaskId);
|
if (czTask == null)
|
{
|
response.Error("任务不存在!");
|
return Task.FromResult(response);
|
}
|
if (dto.Tags.Contains("正极"))
|
{
|
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()
|
{
|
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)
|
{
|
response.OK("任务完成成功!");
|
}
|
else
|
{
|
response.Error("任务完成失败!");
|
}
|
}
|
catch (Exception ex)
|
{
|
response.Error(ex.Message);
|
}
|
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);
|
}
|
}
|
}
|