/*
|
*所有关于dt_pattern类的业务代码应在此处编写
|
*可使用repository.调用常用方法,获取EF/Dapper等信息
|
*如果需要事务请使用repository.DbContextBeginTransaction
|
*也可使用DBServerProvider.手动获取数据库相关信息
|
*用户信息、权限、角色等使用UserContext.Current操作
|
*dt_patternService对增、删、改查、导入、导出、审核业务代码扩展参照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_WCS.IRepositories;
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
using Newtonsoft.Json;
|
using WIDESEA_Core.EFDbContext;
|
using WIDESEA_WCS.Repositories;
|
using WIDESEA_Comm;
|
using WIDESEA_WCS.WCSClient;
|
|
namespace WIDESEA_WCS.Services
|
{
|
public partial class dt_patternService
|
{
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly Idt_patternRepository _repository;//访问数据库
|
|
[ActivatorUtilitiesConstructor]
|
public dt_patternService(
|
Idt_patternRepository dbRepository,
|
IHttpContextAccessor httpContextAccessor
|
)
|
: base(dbRepository)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
_repository = dbRepository;
|
//多租户会用到这init代码,其他情况可以不用
|
//base.Init(dbRepository);
|
}
|
/// <summary>
|
/// 模式1
|
/// </summary>
|
/// <param name="v"></param>
|
/// <returns></returns>
|
public WebResponseContent UpdateAuto(string v)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "桁架");
|
if (Gantry_client == null) throw new Exception("桁架调度服务未开启!");
|
if (!Gantry_client.IsConnected) throw new Exception("与桁架连接超时!");
|
VOLContext context = new VOLContext();
|
Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
|
var stations = stationinfoRepository.Find(x => x.stationCode == "X01001001" || x.stationCode == "X01001002" || x.stationCode == "X02001001" || x.stationCode == "X02001002").ToList();
|
if (stations.Where(x => x.tray_status == TrayStateEnum.StrogeTray.ToString()).Any())
|
throw new Exception("设置为模式1失败!下料位存在车轮!");
|
#region 写入信号告诉桁架切换模式
|
|
#endregion
|
|
var model = JsonConvert.DeserializeObject<dt_pattern>(v);
|
model.pattern_state = 1;
|
var cont = _repository.Update(model, true);
|
if (cont > 0)
|
content.OK(model.pattern_name + "设置为模式1成功!");
|
else
|
content.Error(model.pattern_name + "设置为模式1失败!");
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// 模式2
|
/// </summary>
|
/// <param name="v"></param>
|
/// <returns></returns>
|
public WebResponseContent UpdateManual(string v)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "桁架");
|
if (Gantry_client == null) throw new Exception("桁架调度服务未开启!");
|
if (!Gantry_client.IsConnected) throw new Exception("与桁架连接超时!");
|
VOLContext context = new VOLContext();
|
Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
|
var stations = stationinfoRepository.Find(x => x.stationCode == "X01001001" || x.stationCode == "X01001002" || x.stationCode == "X02001001" || x.stationCode == "X02001002").ToList();
|
if (stations.Where(x => x.tray_status == TrayStateEnum.StrogeTray.ToString()).Any())
|
throw new Exception("设置为模式2失败!下料位存在车轮!");
|
var model = JsonConvert.DeserializeObject<dt_pattern>(v);
|
model.pattern_state = 0;
|
var cont = _repository.Update(model, true);
|
if (cont > 0)
|
content.OK(model.pattern_name + "设置为模式2成功!");
|
else
|
content.Error(model.pattern_name + "设置为模式2失败!");
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
}
|
}
|