using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar.Extensions;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using WIDESEA_Model.Models;
namespace WIDESEA_TaskInfoService
{
public partial class TaskService
{
///
/// 空托入库
///
///
///
public WebResponseContent EmptyInTask(SaveModel saveModel)
{
lock (text)
{
WebResponseContent content = new WebResponseContent();
try
{
string stationcode = saveModel.MainData["stationcode"].ToString();
//string PalletCode = saveModel.MainData["PalletCode"].ToString();
//string toaddress = saveModel.MainData["toaddress"].ToString();
if (stationcode == "")//异常返回。。。。。。
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据不能为空"}");
}
Dt_CachePoint endCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode.Contains("空托库入") && x.PointStatus == LocationStatusEnum.Free.ObjToInt());
if (endCachePoint == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"未找到空托库入库位可用缓存架"}");
}
Dt_CachePoint point = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode);
if (point == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据异常,未找到此缓存架或物料类型不匹配"}");
}
Dt_CachePoint points = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode && x.PointStatus == LocationStatusEnum.Free.ObjToInt());
if (points == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据异常,此缓存点已被锁定"}");
}
Dt_Task taskcode = BaseDal.QueryFirst(x => x.SourceAddress == stationcode || x.TargetAddress == stationcode);
if (taskcode != null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:该站点已存在任务");
}
List tasks = new List();
Dt_Task task = new Dt_Task()
{
CurrentAddress = "",
Grade = 1,
NextAddress = "",
PalletCode = "",
Roadway = "",
SourceAddress = stationcode,
TargetAddress = endCachePoint.PointCode,
TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(),
TaskType = TaskTypeEnum.AGVCarry.ObjToInt(),
Depth = 1,
Materialtype = "",
TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
Creater = App.User.UserId > 0 ? App.User.UserName : "System",
};
tasks.Add(task);
Repository.AddData(tasks);
//修改已存在任务缓存架状态
HCJLock(task);
content = WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{ex.Message}");
}
return content;
}
}
///
/// 空托出库
///
///
///
public WebResponseContent EmptyOutTask(SaveModel saveModel)
{
lock (text)
{
WebResponseContent content = new WebResponseContent();
try
{
string stationcode = saveModel.MainData["stationcode"].ToString();
//string PalletCode = saveModel.MainData["PalletCode"].ToString();
string toaddress = saveModel.MainData["toaddress"].ToString();
if (stationcode == "" || toaddress == "")//异常返回。。。。。。
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据不能为空"}");
}
Dt_CachePoint endCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointName == toaddress && x.PointStatus == LocationStatusEnum.Free.ObjToInt());
if (endCachePoint == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"未找到终点此区域空托库位可用缓存架"}");
}
Dt_CachePoint point = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode);
if (point == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据异常,未找到此缓存架或物料类型不匹配"}");
}
Dt_CachePoint points = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode && x.PointStatus == LocationStatusEnum.InStock.ObjToInt());
if (points == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据异常,此缓存点状态不是有货状态"}");
}
Dt_Task taskcode = BaseDal.QueryFirst(x => x.SourceAddress == stationcode || x.TargetAddress == stationcode);
if (taskcode != null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:该站点已存在任务");
}
List tasks = new List();
Dt_Task task = new Dt_Task()
{
CurrentAddress = "",
Grade = 1,
NextAddress = "",
PalletCode = "",
Roadway = "",
SourceAddress = stationcode,
TargetAddress = endCachePoint.PointCode,
TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(),
TaskType = TaskTypeEnum.AGVCarry.ObjToInt(),
Depth = 1,
Materialtype = "",
TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
Creater = App.User.UserId > 0 ? App.User.UserName : "System",
};
tasks.Add(task);
Repository.AddData(tasks);
//修改已存在任务缓存架状态
HCJLock(task);
content = WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{ex.Message}");
}
return content;
}
}
///
/// 半成品发货
///
///
///
public WebResponseContent PartiallyTask(SaveModel saveModel)
{
lock (text)
{
WebResponseContent content = new WebResponseContent();
try
{
string stationcode = saveModel.MainData["stationcode"].ToString();
string PalletCode = saveModel.MainData["PalletCode"].ToString();
string toaddress = saveModel.MainData["toaddress"].ToString();
if (stationcode == "" || PalletCode == "" || toaddress == "")//异常返回。。。。。。
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据不能为空"}");
}
Dt_CachePoint endCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointName == toaddress && x.PointStatus == LocationStatusEnum.Free.ObjToInt());
if (endCachePoint == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"未找到终点区域可用缓存架"}");
}
Dt_CachePoint point = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode);// && x.Materialtype == PalletCode
if (point == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据异常,未找到此缓存架或物料类型不匹配"}");
}
Dt_CachePoint points = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode && x.PointStatus == LocationStatusEnum.Free.ObjToInt());
if (points == null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{"扫码数据异常,此缓存点已被锁定"}");
}
Dt_Task taskcode = BaseDal.QueryFirst(x => x.SourceAddress == stationcode || x.TargetAddress == stationcode);
if (taskcode != null)
{
return content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:该站点已存在任务");
}
List tasks = new List();
Dt_Task task = new Dt_Task()
{
CurrentAddress = "",
Grade = 1,
NextAddress = "",
PalletCode = "",
Roadway = "",
SourceAddress = stationcode,
TargetAddress = endCachePoint.PointCode,
TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(),
TaskType = TaskTypeEnum.AGVCarry.ObjToInt(),
Depth = 1,
Materialtype = PalletCode,
TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
Creater = App.User.UserId > 0 ? App.User.UserName : "System",
};
tasks.Add(task);
Repository.AddData(tasks);
//修改已存在任务缓存架状态
HCJLock(task);
content = WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
content = WebResponseContent.Instance.Error($"添加任务异常,错误信息:{ex.Message}");
}
return content;
}
}
///
/// 确认收货
///
///
///
public WebResponseContent ConfirmTask(SaveModel saveModel)
{
WebResponseContent content = new WebResponseContent();
try
{
string stationcode = saveModel.MainData["stationcode"].ToString();
//string PalletCode = saveModel.MainData["PalletCode"].ToString();
if (stationcode == "")//异常返回。。。。。。|| PalletCode == ""
{
return content = WebResponseContent.Instance.Error($"收货异常,错误信息:{"扫码数据不能为空"}");
}
Dt_CachePoint cachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode && (x.PointStatus == LocationStatusEnum.Lock.ObjToInt() || x.PointStatus == LocationStatusEnum.InStock.ObjToInt()));//&& x.Materialtype == PalletCode
if (cachePoint == null)
{
return content = WebResponseContent.Instance.Error($"收货异常,错误信息:{"缓存位不是锁定状态"}");
}
Dt_CachePoint point = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == stationcode);// && x.Materialtype == PalletCode
if (point == null)
{
return content = WebResponseContent.Instance.Error($"收货异常,错误信息:{"扫码数据异常,未找到此缓存架或物料类型不匹配"}");
}
Dt_Task taskcode = BaseDal.QueryFirst(x => (x.SourceAddress == stationcode || x.TargetAddress == stationcode));
if (taskcode != null)
{
return content = WebResponseContent.Instance.Error($"收货异常,错误信息:该站点已存在任务");
}
cachePoint.PointStatus = LocationStatusEnum.Free.ObjToInt();
_basicService.CachePointService.Repository.UpdateData(cachePoint);
content = WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
content = WebResponseContent.Instance.Error($"收货异常,错误信息:{ex.Message}");
}
return content;
}
}
}