using MES.Service.Dto.webApi;
using MES.Service.Dto.webApi.DeliveryNote;
using MES.Service.Modes;
using MES.Service.Modes.QcIssueResult;
using MES.Service.service;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Diagnostics;
using System.Dynamic;
namespace MESApplication.Controllers.BasicData;
[ApiController]
[Route("api/ProductionOrder")]
public class ProductionOrderController : ControllerBase
{
private readonly MessageCenterManager _manager = new();
private readonly ProductionOrderManager m = new();
private readonly string METHOD = "POST";
private readonly string TableName = "MES_PRODUCTION_ORDER";
private readonly string URL = "http://localhost:10054/api/ProductionOrder/";
///
/// 获取所有
///
///
[HttpPost("GetList")]
public ResponseResult GetList()
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.GetList();
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("Save")]
public ResponseResult Save(ErpProductionOrder erpProductionOrder)
{
var entity = new MessageCenter();
entity.TableName = TableName;
entity.Url = URL + "Save";
entity.Method = METHOD;
entity.Data = JsonConvert.SerializeObject(erpProductionOrder);
entity.Status = 1;
entity.CreateBy = "PL017";
try
{
dynamic resultInfos = new ExpandoObject();
var save = m.Save(erpProductionOrder);
resultInfos.tbBillList = save;
entity.Result = 0;
if (save) entity.Result = 1;
entity.DealWith = 1;
_manager.save(entity);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
entity.Result = 0;
entity.DealWith = 0;
entity.ResultData = ex.Message;
_manager.save(entity);
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("SaveList")]
public ResponseResult SaveList(List erpProductionOrder)
{
var entity = new MessageCenter();
entity.TableName = TableName;
entity.Url = URL + "SaveList";
entity.Method = METHOD;
entity.Data = JsonConvert.SerializeObject(erpProductionOrder);
entity.Status = 1;
entity.CreateBy = "PL017";
try
{
dynamic resultInfos = new ExpandoObject();
var save = m.SaveList(erpProductionOrder);
resultInfos.tbBillList = save;
entity.Result = 0;
if (save) entity.Result = 1;
entity.DealWith = 1;
_manager.save(entity);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
entity.Result = 0;
entity.DealWith = 0;
entity.ResultData = ex.Message;
_manager.save(entity);
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("GetFileUrl")]
public IActionResult StartGetUrl() {
try
{
// 调用 QcIssueResultManager 中的 GetProcessNo 方法来启动钉钉工作流实例
string result = m.GetFileUrl();
//string jsonPart = result.Substring(result.IndexOf("{"));
//Debug.WriteLine(jsonPart);
//JObject jsonObject = JObject.Parse(jsonPart);
//// 提取instanceId的值
//string instanceId = jsonObject["InstanceId"].ToString();
//dynamic resultInfos = new ExpandoObject();
//string ProcessNo = instanceId;
////var save = m.SaveProcessNo(ReleaseNo, instanceId);
////resultInfos.tbBillList = save;
return Ok(result);
}
catch (Exception ex)
{
// 捕获异常并返回错误信息
return StatusCode(500, $"启动钉钉工作流实例失败: {ex.Message}");
}
}
}