/* *所有关于Dt_TaskRGVinfo类的业务代码应在此处编写 *可使用repository.调用常用方法,获取EF/Dapper等信息 *如果需要事务请使用repository.DbContextBeginTransaction *也可使用DBServerProvider.手动获取数据库相关信息 *用户信息、权限、角色等使用UserContext.Current操作 *Dt_TaskRGVinfoService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter */ using WIDESEA_Core.BaseProvider; using WIDESEA_Core.Extensions.AutofacManager; using WIDESEA_Entity.DomainModels; using System.Linq; using WIDESEA_Core.Utilities; using System.Linq.Expressions; using WIDESEA_Core.Extensions; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.Http; using WIDESEA_Services.IRepositories; using System; using WIDESEA_Services.Repositories; using WIDESEA_Common; using WIDESEA_Common.TaskEnum; using WIDESEA_Core.Services; using WIDESEA_Core.Enums; using WIDESEA_Services.Services.APIInvoke.RGV; namespace WIDESEA_Services.Services { public partial class Dt_TaskRGVinfoService { private readonly IHttpContextAccessor _httpContextAccessor; private readonly IDt_TaskRGVinfoRepository _repository;//访问数据库 [ActivatorUtilitiesConstructor] public Dt_TaskRGVinfoService( IDt_TaskRGVinfoRepository dbRepository, IHttpContextAccessor httpContextAccessor ) : base(dbRepository) { _httpContextAccessor = httpContextAccessor; _repository = dbRepository; //多租户会用到这init代码,其他情况可以不用 //base.Init(dbRepository); } /// /// 手动完成穿梭车的任务,比如在穿梭车发生报警情况,由人工手动处理的任务 /// /// 穿梭车的任务号 /// public static WebResponseContent FinishedRgvTask(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { string taskId = saveModel.MainData["taskId"].ToString(); Dt_TaskRGVinfo taskRGVinfo = Dt_TaskRGVinfoRepository.Instance.FindFirst(x => x.rgvtask_taskId == taskId); if (taskRGVinfo == null) content.Error($"手动完成穿梭车任务出错,没有找到任务号:【{taskId}】对应的任务"); else { content = CommonFunction.FinishedRgvTask(taskRGVinfo, "system"); if (content.Status) content.OK("手动完成穿梭车任务成功"); else content.Error($"手动完成穿梭车任务出错:" + content.Message); } } catch (Exception ex) { content.Error($"手动完成穿梭车任务出错:" + ex.Message); } Logger.AddLog(LoggerType.Add, saveModel, content, content); return content; } public override WebResponseContent Add(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { string taskType = saveModel.MainData["rgvtask_taskType"]?.ToString(); string rgvtask_startNode = saveModel.MainData["rgvtask_startNode"]?.ToString(); string rgvtask_endNode = saveModel.MainData["rgvtask_endNode"]?.ToString(); string rgvtask_barCode = saveModel.MainData["rgvtask_barCode"]?.ToString(); if (string.IsNullOrEmpty(taskType) || string.IsNullOrEmpty(rgvtask_startNode) || string.IsNullOrEmpty(rgvtask_endNode) || string.IsNullOrEmpty(rgvtask_barCode)) return content.Error("请维护全部信息."); if (repository.Exists(x => x.rgvtask_wcsTaskNumber == 0 && x.rgvtask_taskId == "0")) return content.Error("当前存在手动任务,请等待完成后在创建。"); Dt_TaskRGVinfo rgvTask = new Dt_TaskRGVinfo() { rgvtask_areaCode = "", rgvtask_backup_1 = "", rgvtask_backup_2 = "", rgvtask_backup_3 = "", rgvtask_barCode = rgvtask_barCode, rgvtask_creator = "", rgvtask_dispatchertime = null, rgvtask_endNode = rgvtask_endNode, rgvtask_groupId = "", rgvtask_id = Guid.NewGuid(), rgvtask_msgTime = null, rgvtask_order = 1, rgvtask_priorityCode = "1", rgvtask_startNode = rgvtask_startNode, rgvtask_taskId = "0", rgvtask_taskStatus = RGVTaskState.RgvTaskState_Wait_Send.ToString(), rgvtask_taskType = taskType, rgvtask_warehouser = "", rgvtask_wcsTaskNumber = 0 }; repository.Add(rgvTask, true); content.OK("添加成功"); } catch (Exception ex) { content.Error("创建失败:" + ex.Message); } return content; } public override WebResponseContent Del(object[] keys, bool delList = true) { WebResponseContent content = new WebResponseContent(); try { content = Dt_TaskRGVinfoRepository.Instance.DbContextBeginTransaction(() => { foreach (var item in keys) { Guid id = Guid.Parse(item.ToString()); Dt_TaskRGVinfo task = Dt_TaskRGVinfoRepository.Instance.FindFirst(r => r.rgvtask_id == id); if (null != task) { //调取RGV接口取消 WebResponseContent webResponse= RGVAPIInvokeTaskCancel.CancelTaskFromRGV(task.rgvtask_taskId); if (webResponse.Status) { CommonFunction.AddRgvTaskToHistory(task, Dt_TaskRGVinfoRepository.Instance, Dt_TaskRGVinfo_HtyRepository.Instance); } } } return content.OK("删除成功"); }); } catch (Exception ex) { content.Error("删除失败:" + ex.Message); } return content; } } }