/*
|
*所有关于Dt_agvtask类的业务代码应在此处编写
|
*可使用repository.调用常用方法,获取EF/Dapper等信息
|
*如果需要事务请使用repository.DbContextBeginTransaction
|
*也可使用DBServerProvider.手动获取数据库相关信息
|
*用户信息、权限、角色等使用UserContext.Current操作
|
*Dt_agvtaskService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
|
*/
|
using WIDESEA_Entity.DomainModels;
|
using WIDESEA_Core.Utilities;
|
using System;
|
using WIDESEA_Services.Repositories;
|
using Newtonsoft.Json;
|
using Microsoft.Extensions.Logging;
|
using WIDESEA_Core.Services;
|
using WIDESEA_Core.Extensions;
|
using System.Linq;
|
using WIDESEA_Core.ManageUser;
|
using WIDESEA_Core.EFDbContext;
|
using WIDESEA_Services.IRepositories;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.Extensions.DependencyInjection;
|
using WIDESEA_WCS;
|
using WIDESEA_Common;
|
using WIDESEA_Core.Enums;
|
|
namespace WIDESEA_Services.Services
|
{
|
public partial class dt_agvtaskService
|
{
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly dt_agvtaskRepository _repository;//访问数据库
|
|
[ActivatorUtilitiesConstructor]
|
public dt_agvtaskService(
|
dt_agvtaskRepository dbRepository,
|
IHttpContextAccessor httpContextAccessor
|
)
|
: base(dbRepository)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
_repository = dbRepository;
|
//多租户会用到这init代码,其他情况可以不用
|
//base.Init(dbRepository);
|
}
|
public override WebResponseContent Del(object[] keys, bool delList = true)
|
{
|
WebResponseContent content = new WebResponseContent();
|
UserContext userContext = new UserContext();
|
|
content = repository.DbContextBeginTransaction(() =>
|
{
|
foreach (var item in keys)
|
{
|
Guid id = Guid.Parse(item.ToString());
|
dt_agvtask agvtask = repository.FindFirst(x => x.agv_id == id);
|
if (userContext.UserName == "ME1")
|
{
|
if (agvtask.agv_code == "负极1号AGV" || agvtask.agv_code == "正极1号AGV")
|
{
|
|
}
|
else
|
{
|
throw new Exception(string.Format($"账号【{userContext.UserName}】无权限删除【{agvtask.agv_code}】AGV任务" + agvtask.agv_tasknum));
|
}
|
}
|
else if (userContext.UserName == "ME3")
|
{
|
if (agvtask.agv_code == "负极2号AGV" || agvtask.agv_code == "正极2号AGV")
|
{
|
|
}
|
else
|
{
|
throw new Exception(string.Format($"账号【{userContext.UserName}】无权限删除【{agvtask.agv_code}】AGV任务" + agvtask.agv_tasknum));
|
}
|
}
|
else
|
{
|
throw new Exception(string.Format($"账号【{userContext.UserName}】无权限删除【{agvtask.agv_code}】AGV任务" + agvtask.agv_tasknum));
|
}
|
try
|
{
|
if (agvtask.agv_fromaddress.Contains("HCJ") && agvtask.agv_toaddress.Contains("JJK"))
|
{
|
if (agvtask.agv_toaddress.Contains("ZJ"))
|
{
|
MESback WMSbackresult = MESAPIInvoke.Reschedule(1);
|
if (WMSbackresult == null) { return WebResponseContent.Instance.Error("AGV任务删除失败"); }
|
}
|
else
|
{
|
MESback WMSbackresult = MESAPIInvoke.Reschedule(2);
|
if (WMSbackresult == null) { return WebResponseContent.Instance.Error("AGV任务删除失败"); }
|
}
|
}
|
dt_agvtask_htyRepository.Instance.AddTaskHistorys(agvtask, "ManualDeletion", userContext.UserName);
|
repository.Delete(agvtask, true);
|
}
|
catch (Exception ex)
|
{
|
throw new Exception($"{ex.Message}");
|
}
|
}
|
return WebResponseContent.Instance.OK("AGV任务删除成功");
|
});
|
return content;
|
|
|
|
|
|
|
//string msg = "删除成功";
|
//try
|
//{
|
// content = repository.DbContextBeginTransaction(() =>
|
// {
|
// foreach (var item in keys)
|
// {
|
// Guid id = Guid.Parse(item.ToString());
|
// dt_agvtask agvtask = repository.FindFirst(x => x.agv_id == id);
|
// try
|
// {
|
// if (agvtask.agv_fromaddress.Contains("HCJ") && agvtask.agv_toaddress.Contains("JJK"))
|
// {
|
// if (agvtask.agv_toaddress.Contains("ZJ"))
|
// {
|
// MESback WMSbackresult = MESAPIInvoke.Reschedule(1);
|
// if (WMSbackresult == null) { return WebResponseContent.Instance.Error("AGV任务删除失败"); }
|
// }
|
// else
|
// {
|
// MESback WMSbackresult = MESAPIInvoke.Reschedule(2);
|
// if (WMSbackresult == null) { return WebResponseContent.Instance.Error("AGV任务删除失败"); }
|
// }
|
// }
|
// dt_agvtask_htyRepository.Instance.AddTaskHistory(agvtask, "ManualDeletion");
|
// repository.Delete(agvtask, true);
|
// }
|
// catch (Exception ex)
|
// {
|
// throw new Exception($"{ex.Message}");
|
// }
|
// }
|
// return WebResponseContent.Instance.OK("AGV任务删除成功");
|
// });
|
|
//}
|
//catch (Exception ex)
|
//{
|
// msg = ex.Message + ex.StackTrace;
|
// content = WebResponseContent.Instance.Error($"AGV任务删除失败,错误消息:{ex.Message}");
|
//}
|
//finally
|
//{
|
// Logger.Info(LoggerType.Del, "", content.Message, msg);
|
//}
|
//return content;
|
}
|
}
|
}
|