using Newtonsoft.Json;
using NongFuWebApi.Services;
using NongFuWebApi.Controllers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using static NongFuWebApi.Controllers.AMSModel;
using System.Configuration;
namespace NongFuWebApi.Models
{
public class ApiHelper
{
private static HttpHelper httpHelper = new HttpHelper();
static string url = ConfigurationManager.AppSettings["WMSUrl"].ToString();
#region 靖宇接口方法
///
/// 工单信息获取接口
///
///
///
internal static SimpleResultModel WorkInfo(TASK_WorkInfoModel model)
{
SimpleResultModel result = new SimpleResultModel { success = false, errCode = -1 };
try
{
var db = new SqlHelper().GetInstance();
var workInfo = db.Queryable().Where(a => a.S_WorkNo == model.WorkNo).First();
//bool req = false;
//查询执行中或者处于暂停的 当前产线工单
//如果不存在,即插入工单表数据信息,默认执行中
//反之,判断当前是否为 结束工单,如果是,更新结束时间,反之,返回工单已存在
//WorkState 1-新建 2-完成
if (workInfo == null && model.WorkState == "1")
{
//如果物料名称用物料表物料名称,查询物料表物料名称
var iteminfo = db.Queryable().Where(a => a.S_ITEM_CODE == model.MaterialCode).First();
if (iteminfo != null)
{
model.ItemCode = iteminfo.S_ITEM_NAME;
}
WorkOrder1 wmsTask = new WorkOrder1()
{
S_WorkNo = model.WorkNo,
S_PLineNo = model.DeviceName,
// SQL_UsingNo = "N",
S_ORDER_TYPE = "产线下线",
S_ItemCode = model.MaterialCode,
SQL_ItemName = model.ItemCode,
S_WorkState = "新建",
withCode = "是",
S_Modify = model.WorkTime,
// MaterialCode = model.MaterialCode
};
TaskHelper.JingYuInsertWork(wmsTask);
result.success = true;
result.errMsg = $"工单信息接收成功,工单已创建!";
string deviceName = model.DeviceName;
//SendPlcWorkState(deviceName);
}
else if (workInfo != null && model.WorkState == "2")
{
if (!workInfo.S_WorkState.Trim().Contains("完成"))
{
TaskHelper.UpdateStatus1(workInfo, "已完成", model.WorkTime);
result.success = true;
result.errMsg = $"工单信息接收成功,工单已完成!";
string deviceName = model.DeviceName;
//SendPlcWorkState(deviceName, false);
}
else result.errMsg = $"工单信息接收成功,工单已完成!";
}
else if (workInfo != null && model.WorkState == "1") result.errMsg = $"当前工单已存在。工单号:{workInfo.S_WorkNo},产线号:{model.DeviceName}";
}
catch (Exception ex)
{
result.errMsg = $"工单信息接收异常:{ex.Message}";
}
return result;
}
///
/// 富勒托盘 带更改托盘码的托盘信息下发方法
///
///
///
internal static SimpleResultModel SendTrayCode(SendTrayCodeModel model)
{
SimpleResultModel result = new SimpleResultModel { success = false, errCode = -1 };
var db = new SqlHelper