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}"); } } }