Files
T-DAS/Epost.TestToolsWeb/Controllers/TaskAPIController.cs
2024-11-27 10:39:18 +08:00

321 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Epost.BLL;
using Epost.Common;
using Epost.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace Epost.DPS.Controllers
{
[RoutePrefix("api/TaskAPI")]
public class TaskAPIController : ApiController
{
InboundOrdersBLL inOrderBLL = new InboundOrdersBLL();
PalletinfoBLL palletBLL = new PalletinfoBLL();
Sys_operate_logBLL logBLL = new Sys_operate_logBLL();
[Route("agvPutTask")]
[HttpPost]
public string agvPutTask([FromBody] TaskModel model)
{
ReturnRes res = new ReturnRes();
try
{
LogHelper.WriteLogInfo("请求报文" + JsonHelper.SerializeObject(model));
if (model.data.header.Any())
{
foreach (TaskHeader item in model.data.header)
{
if (string.IsNullOrEmpty(item.wmsDocNo) || string.IsNullOrEmpty(item.taskType))
{
res.returnDesc = "请求参数错误!";
res.returnCode = "0001";
res.returnFlag = "0";
}
else
{
DataTable orderdt = inOrderBLL.GetOrdersList(item.wmsDocNo);
if (orderdt != null && orderdt.Rows.Count > 0)
{
res.returnDesc = "订单已存在!";
res.returnCode = "0001";
res.returnFlag = "0";
}
else
{
#region datatable创建
DataTable dataTable = new DataTable();
dataTable.TableName = "InboundOrders";
dataTable.Columns.Add(new DataColumn("wmsDocNo", typeof(string)));
dataTable.Columns.Add(new DataColumn("groupTaskId", typeof(string)));
dataTable.Columns.Add(new DataColumn("palletId", typeof(string)));
dataTable.Columns.Add(new DataColumn("spositionCode", typeof(string)));
dataTable.Columns.Add(new DataColumn("dpositionCode", typeof(string)));
dataTable.Columns.Add(new DataColumn("priority", typeof(string)));
dataTable.Columns.Add(new DataColumn("taskType", typeof(string)));
dataTable.Columns.Add(new DataColumn("userId", typeof(string)));
dataTable.Columns.Add(new DataColumn("userName", typeof(string)));
dataTable.Columns.Add(new DataColumn("notes", typeof(string)));
dataTable.Columns.Add(new DataColumn("warehouseId", typeof(string)));
dataTable.Columns.Add(new DataColumn("addtime", typeof(DateTime)));
dataTable.Columns.Add(new DataColumn("state", typeof(int)));
#endregion
if (item.details.Any())
{
foreach (TaskDetail detail in item.details)
{
#region datatable
DataRow dataRow = dataTable.NewRow();
dataRow["wmsDocNo"] = item.wmsDocNo;
dataRow["groupTaskId"] = detail.groupTaskId;
dataRow["palletId"] = detail.palletId;
dataRow["spositionCode"] = detail.spositionCode;
dataRow["dpositionCode"] = detail.dpositionCode;
dataRow["priority"] = item.priority;
dataRow["taskType"] = item.taskType;
dataRow["userId"] = item.userId;
dataRow["userName"] = item.userName;
dataRow["notes"] = detail.notes;
dataRow["warehouseId"] = item.warehouseId;
dataRow["addtime"] = DateTime.Now.ToString();
dataRow["state"] = "0";
dataTable.Rows.Add(dataRow);
#endregion
}
}
#region Dictionary
Dictionary<string, string> diclist = new Dictionary<string, string>();
diclist.Add("wmsDocNo", "wmsDocNo");
diclist.Add("groupTaskId", "groupTaskId");
diclist.Add("palletId", "palletId");
diclist.Add("spositionCode", "spositionCode");
diclist.Add("dpositionCode", "dpositionCode");
diclist.Add("priority", "priority");
diclist.Add("taskType", "taskType");
diclist.Add("userId", "userId");
diclist.Add("userName", "userName");
diclist.Add("notes", "notes");
diclist.Add("warehouseId", "warehouseId");
diclist.Add("addtime", "addtime");
diclist.Add("state", "state");
#endregion
bool bo = inOrderBLL.InsertOrder(dataTable, diclist);
if (bo)
{
//添加托盘明细
InsertPallet(item);
res.returnCode = "0000";
res.returnDesc = "成功!";
res.returnFlag = "1";
}
else
{
res.returnCode = "0001";
res.returnDesc = "请求失败,请重试!";
res.returnFlag = "0";
}
}
}
}
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("agvPutTask异常" + ex.ToString(), LogHelper.Log_Type.ERROR);
res.returnDesc = "请求接口异常!";
res.returnCode = "0001";
res.returnFlag = "0";
}
string resinfo = "{\"Response\":{\"return\":" + JsonHelper.SerializeObject(res) + " } }";
logBLL.InsertLog("生成任务单", "agvPutTask", "/api/TaskAPI/agvPutTask", JsonHelper.SerializeObject(model), resinfo, 0, res.returnDesc, DateTime.Now);
return resinfo;
}
#region
public bool InsertPallet(TaskHeader item)
{
try
{
#region datatable创建
DataTable dataTable2 = new DataTable();
dataTable2.TableName = "Palletinfo";
dataTable2.Columns.Add(new DataColumn("wmsDocNo", typeof(string)));
dataTable2.Columns.Add(new DataColumn("groupTaskId", typeof(string)));
dataTable2.Columns.Add(new DataColumn("palletId", typeof(string)));
dataTable2.Columns.Add(new DataColumn("sku", typeof(string)));
dataTable2.Columns.Add(new DataColumn("skuDescr1", typeof(string)));
dataTable2.Columns.Add(new DataColumn("qty", typeof(string)));
dataTable2.Columns.Add(new DataColumn("taskType", typeof(string)));
dataTable2.Columns.Add(new DataColumn("notes", typeof(string)));
dataTable2.Columns.Add(new DataColumn("addtime", typeof(DateTime)));
#endregion
if (item.details2.Any())
{
foreach (TaskDetails2 detail in item.details2)
{
#region datatable
DataRow dataRow1 = dataTable2.NewRow();
dataRow1["wmsDocNo"] = item.wmsDocNo;
dataRow1["groupTaskId"] = detail.groupTaskId;
dataRow1["palletId"] = detail.palletId;
dataRow1["sku"] = detail.sku;
dataRow1["skuDescr1"] = detail.skuDescr1;
dataRow1["qty"] = detail.qty;
dataRow1["notes"] = item.notes;
dataRow1["taskType"] = item.taskType;
dataRow1["addtime"] = DateTime.Now.ToString();
dataTable2.Rows.Add(dataRow1);
#endregion
}
}
#region Dictionary
Dictionary<string, string> diclist1 = new Dictionary<string, string>();
diclist1.Add("wmsDocNo", "wmsDocNo");
diclist1.Add("groupTaskId", "groupTaskId");
diclist1.Add("palletId", "palletId");
diclist1.Add("sku", "sku");
diclist1.Add("skuDescr1", "skuDescr1");
diclist1.Add("qty", "qty");
diclist1.Add("notes", "notes");
diclist1.Add("taskType", "taskType");
diclist1.Add("addtime", "addtime");
#endregion
bool bo = palletBLL.InsertPallet(dataTable2, diclist1);
LogHelper.WriteLogInfo(item.wmsDocNo + "添加托盘明细:" + bo);
return true;
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("添加托盘明细异常:" + ex.ToString(), LogHelper.Log_Type.ERROR);
return false;
}
}
#endregion
[Route("agvCancleTask")]
[HttpPost]
public string agvCancleTask([FromBody] AgvCancleModel model)
{
ReturnRes res = new ReturnRes();
try
{
LogHelper.WriteLogInfo("请求报文" + JsonHelper.SerializeObject(model));
if (model.data.header.Any())
{
foreach (CancleHeader item in model.data.header)
{
if (string.IsNullOrEmpty(item.groupTaskId) || string.IsNullOrEmpty(item.palletId))
{
res.returnDesc = "请求参数错误!";
res.returnCode = "0001";
res.returnFlag = "0";
}
else
{
DataTable orderdt = inOrderBLL.GetInOrderList(" and groupTaskId='"+item.groupTaskId+ "' and palletId='"+ item.palletId + "' and state=0");
if (orderdt != null && orderdt.Rows.Count > 0)
{
res.returnCode = "0000";
res.returnDesc = "成功!";
res.returnFlag = "1";
}
else {
res.returnDesc = "订单不存在/订单已执行!";
res.returnCode = "0001";
res.returnFlag = "0";
}
}
}
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("agvCancleTask异常" + ex.ToString(), LogHelper.Log_Type.ERROR);
res.returnDesc = "请求接口异常!";
res.returnCode = "0001";
res.returnFlag = "0";
}
string resinfo = "{\"Response\":{\"return\":" + JsonHelper.SerializeObject(res) + " } }";
logBLL.InsertLog("取消任务接口", "agvCancleTask", "/api/TaskAPI/agvCancleTask", JsonHelper.SerializeObject(model), resinfo, 0, res.returnDesc, DateTime.Now);
return resinfo;
}
[Route("agvBindPodAndBerth")]
[HttpPost]
public string agvBindPodAndBerth([FromBody] agvBindPodModel model)
{
ReturnRes res = new ReturnRes();
try
{
LogHelper.WriteLogInfo("请求报文" + JsonHelper.SerializeObject(model));
if (model.data.header.Any())
{
foreach (agvBindHeader item in model.data.header)
{
if (string.IsNullOrEmpty(item.indBind) || string.IsNullOrEmpty(item.palletId) || string.IsNullOrEmpty(item.positionCode))
{
res.returnDesc = "请求参数错误!";
res.returnCode = "0001";
res.returnFlag = "0";
}
else
{
res.returnCode = "0000";
res.returnDesc = "成功!";
res.returnFlag = "1";
}
}
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("agvBindPodAndBerth异常" + ex.ToString(), LogHelper.Log_Type.ERROR);
res.returnDesc = "请求接口异常!";
res.returnCode = "0001";
res.returnFlag = "0";
}
string resinfo = "{\"Response\":{\"return\":" + JsonHelper.SerializeObject(res) + " } }";
logBLL.InsertLog("agv绑定解绑接口", "agvBindPodAndBerth", "/api/TaskAPI/agvBindPodAndBerth", JsonHelper.SerializeObject(model), resinfo, 0, res.returnDesc, DateTime.Now);
return resinfo;
}
}
}