You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
6.6 KiB
C#

2 years ago
using Khd.Core.Application.Interface;
2 years ago
using Khd.Core.Domain.Dto.webapi;
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Microsoft.Extensions.DependencyInjection;
2 years ago
using System;
using System.Linq;
2 years ago
using Z.EntityFramework.Plus;
namespace Khd.Core.Application
{
public class WcsTaskApplication : IWcsTaskApplication
{
private readonly DefaultDbContext _dbContext;
public WcsTaskApplication(IServiceProvider serviceProvider)
{
_dbContext = serviceProvider.GetService<DefaultDbContext>();
}
public WcsTask Get(int id)
{
var entity = _dbContext.WcsTask
2 years ago
.Where(c => 1 == 1)
2 years ago
.FirstOrDefault();
return entity;
}
public WcsTask Add(WcsTask model)
{
var entity = _dbContext.Add(model);
_dbContext.SaveChanges();
return entity.Entity;
}
public WcsTask Update(WcsTask model)
{
var list = _dbContext.WcsTask.Where(t => t.objid == model.objid).Update(a => model);
return model;
}
/// <summary>
/// 接收agv接收任务通知接口
/// </summary>
/// <param name="agvCallbackDto"></param>
/// <returns></returns>
public ReponseagvCallbackDto AgvCallback(agvCallbackDto agvCallbackDto)
{
ReponseagvCallbackDto reponseagvCallbackDto = new ReponseagvCallbackDto();
2 years ago
try
{
2 years ago
var wcscmd = _dbContext.WcsCmd
.Where(t=>t.taskCode==agvCallbackDto.taskCode)
2 years ago
.FirstOrDefault();
2 years ago
if (wcscmd != null)
{
2 years ago
WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcscmd.taskId);
if(wcsTask != null)
2 years ago
{
2 years ago
//start 开始 end结束 continue继续
//待取货
if (agvCallbackDto.method.ToLower() == "start")
{
wcscmd.cmdStatus = 2;
wcscmd.sendFlag = 1;
wcsTask.taskStatus = 2;
_dbContext.WcsCmd.Update(wcscmd);
_dbContext.WcsTask.Update(wcsTask);
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
//已取货待放货
if (agvCallbackDto.method.ToLower() == "continue")
{
wcscmd.cmdStatus = 3;
wcscmd.sendFlag = 1;
wcsTask.taskStatus = 3;
_dbContext.WcsCmd.Update(wcscmd);
_dbContext.Update(wcsTask);
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
2 years ago
2 years ago
//_dbContext.WcsTask.Where(t => t.objid == wcscmd.taskId).Update(t=>t.taskStatus==3);
}
//放货完成
if (agvCallbackDto.method.ToLower() == "end")
{
wcscmd.cmdStatus = 5;
wcscmd.sendFlag = 1;
wcsTask.taskStatus= 5;
_dbContext.WcsCmd.Update(wcscmd);
_dbContext.Update(wcsTask);
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
2 years ago
}
}
2 years ago
else
{
reponseagvCallbackDto.code = "1";
reponseagvCallbackDto.message = "未找到当前任务";
}
2 years ago
}
catch (Exception ex)
{
2 years ago
reponseagvCallbackDto.code = "1";
2 years ago
reponseagvCallbackDto.message = ex.Message;
}
2 years ago
//返回请求
reponseagvCallbackDto.reqCode = reponseagvCallbackDto.reqCode;
return reponseagvCallbackDto;
}
2 years ago
/// <summary>
/// 入库完成
/// </summary>
/// <returns></returns>
public string InWare(long taskId)
{
return "";
}
/// <summary>
/// 出库完成
/// </summary>
/// <returns></returns>
public string OutWare(long taskId)
{
return "";
}
2 years ago
public AgvCompeletedResponse MesToAgvComplete(AgvCompeleted agvCompeletedRequest)
{
AgvCompeletedResponse agvCompeletedResponse = new AgvCompeletedResponse();
try
{
string stationId = agvCompeletedRequest.stationId;
BaseEquip baseEquip = _dbContext.BaseEquip.FirstOrDefault(t=>t.equipNo==stationId);
if (baseEquip != null)
{
var wcsCmd = _dbContext.WcsCmd.Where(t => t.nextPointId == baseEquip.objid).FirstOrDefault();
if (wcsCmd != null)
{
WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcsCmd.taskId);
if (wcsTask != null)
{
agvCompeletedResponse.code = "0";
agvCompeletedResponse.message = "成功";
wcsCmd.cmdStatus = 6;
wcsTask.taskStatus = 6;
_dbContext.WcsCmd.Update(wcsCmd);
_dbContext.WcsTask.Update(wcsTask);
_dbContext.SaveChanges();
}
}
else
{
agvCompeletedResponse.code = "1";
agvCompeletedResponse.message = "未找到当前任务";
}
}
else
{
agvCompeletedResponse.code = "1";
agvCompeletedResponse.message = "未找到当前设备";
}
}
catch (Exception ex)
{
agvCompeletedResponse.code = "1";
agvCompeletedResponse.message = ex.Message;
}
return agvCompeletedResponse;
}
2 years ago
}
}