using Newtonsoft.Json;
using System;
using WIDESEA_Common;
using WIDESEA_Common.APIAdderss;
using WIDESEA_Common.DBHelper;
using WIDESEA_Common.Tools;
using WIDESEA_Core.Utilities;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Entity.DomainModels.TongRi;
namespace WIDESEA_WCS.ToTongRi
{
public partial class ToTongRiServer
{
FreeDB freeDB = new FreeDB();
///
/// 申请入库
///
public void requestInWHTask(dt_agvtask agvtask)
{
try
{
RequestParm request = new RequestParm();
request.taskId = agvtask.agv_tasknum;
request.wareHouse = agvtask.agv_fromaddress.Contains("ZJ") ? "1" : "2";
request.containerType = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔"; ;
var res = HttpHelper.Post(request, OrtherAPIAddress.TongRi + "requestInWHTask");
if (res.code == 2)
{
throw new Exception("同日wms返回异常:\n" + res.msg);
}
}
catch (Exception ex)
{
WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日申请库");
throw ex;
}
}
///
/// 申请出库
///
public void requestOutWHTask(dt_agvtask agvtask)
{
try
{
RequestParm request = new RequestParm();
request.taskId = agvtask.agv_tasknum;
request.wareHouse = agvtask.agv_fromaddress.Contains("ZJ") ? "1" : "2";
request.containerType = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔"; ;
var res = HttpHelper.Post(request, OrtherAPIAddress.TongRi + "requestOutWHTask");
if (res.code == 2)
{
throw new Exception("同日wms返回异常:\n" + res.msg);
}
}
catch (Exception ex)
{
WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日申请入库");
throw ex;
}
}
///
/// 物料出入库反馈 (同日调用)放的取的位置
///
public TongRiRespone reportTaskPoint(object json)
{
TongRiRespone tongRiRespone = new TongRiRespone();
try
{
var report = JsonConvert.DeserializeObject(json.ToString());
var task = freeDB.Select().Where(t => t.agv_tasknum == report.taskNo).ToOne();
task.agv_taskstate = AGVTaskStateEnum.Create.ToString();
//入库
if (report.taskType == "1")
{
task.agv_toaddress = report.fromLocationCode;
}
//出库
else if (report.taskType == "2")
{
task.agv_fromaddress = report.fromLocationCode;
}
int changeRows = freeDB.Update(task).UpdateColumns(t => new { t.agv_taskstate, t.agv_toaddress, t.agv_fromaddress }).ExecuteAffrows();
WriteLog.GetLog().Write($"【成功】{json}", "同日反馈取放位置");
tongRiRespone.code = 1;
}
catch (Exception ex)
{
WriteLog.GetLog().Write($"【异常】{ex.Message}\n{json}", "同日反馈取放位置");
tongRiRespone.code = 2;
tongRiRespone.msg = ex.Message;
}
return tongRiRespone;
}
///
/// 物料入库/出库AGV取放货完成上报(agv状态2,起点完成)
///
public void reportTaskComplete(dt_agvtask agvtask)
{
try
{
ReportTaskComplete reportTask = new ReportTaskComplete();
reportTask.refTaskId = agvtask.agv_tasknum;
if (agvtask.agv_tasktype == "入库")
{
reportTask.taskType = "1";
reportTask.fromLocationCode = agvtask.agv_toaddress;
reportTask.containerType = agvtask.agv_toaddress.Contains("ZJ") ? "铝箔" : "铜箔";
}
else
{
//出库
reportTask.taskType = "2";
reportTask.fromLocationCode = agvtask.agv_fromaddress;
reportTask.containerType = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔";
}
WriteLog.GetLog().Write($"【成功】任务号:{agvtask.agv_tasknum}", "同日agv完成上报");
}
catch (Exception ex)
{
WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日agv完成上报");
throw ex;
}
}
///
/// 物料出入库任务取消/手动完成申请接口
///
public void requestCancelTask(dt_agvtask agvtask)
{
try
{
RequestCancelTask requestCancelTask = new RequestCancelTask();
requestCancelTask.refTaskId = agvtask.agv_tasknum;
if (agvtask.agv_tasktype == "入库")
{
requestCancelTask.containerCode = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔";
requestCancelTask.taskType = "1";
}
else
{
requestCancelTask.containerCode = agvtask.agv_toaddress.Contains("ZJ") ? "铝箔" : "铜箔";
requestCancelTask.taskType = "2";
}
if (agvtask.agv_taskstate == AGVTaskStateEnum.Cancel.ToString())
{
requestCancelTask.taskState = "1";
}
else if (agvtask.agv_taskstate == "手动完成")
{
requestCancelTask.taskState = "2";
}
WriteLog.GetLog().Write($"【成功】任务号:{agvtask.agv_tasknum}", "同日手动操作任务");
}
catch (Exception ex)
{
WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日手动操作任务");
throw ex;
}
}
}
}