1
sjz
2025-03-25 ac9147ee014041a8c01f27700389736ce8e242f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using MES.Service.Dto.webApi;
using MES.Service.Dto.webApi.QcIssueResult;
using MES.Service.Modes;
using MES.Service.Modes.QcIssueResult;
using MES.Service.Modes.SentLaboratory;
using MES.Service.service;
using MES.Service.service.QcIssueResult;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Diagnostics;
using System.Dynamic;
using System.Text.Json.Nodes;
 
namespace MESApplication.Controllers.QcIssueResult;
 
[ApiController]
[Route("api/[controller]")]
public class QcIssueResultController : ControllerBase
{
    private readonly MessageCenterManager _manager = new();
    private readonly QcIssueResultManager m = new();
 
    private readonly string METHOD = "POST";
 
    private readonly string TableName = "MES_QCISSUE_RESULT";
 
    private readonly string URL = "http://localhost:10054/api/QcIssueResult/";
 
 
    [HttpPost("GetProcessNo")]
    public IActionResult StartDingtalkProcess([FromBody] GetQcIssueResultDetail getQcIssueResultDetail)
    {
   
        try
        {
 
            // 调用 QcIssueResultManager 中的 GetProcessNo 方法来启动钉钉工作流实例
            string result = m.GetProcessNo(getQcIssueResultDetail);
 
            string getLaboratoryDetailsJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented);
            Debug.WriteLine("getQcIssueResultDetail: " + getLaboratoryDetailsJson);
 
            string jsonPart = result.Substring(result.IndexOf("{"));
            JObject jsonObject = JObject.Parse(jsonPart);
            // 提取instanceId的值
            string instanceId = jsonObject["InstanceId"].ToString();
 
            dynamic resultInfos = new ExpandoObject();
            string ProcessNo = instanceId;
            var save = m.SaveProcessNo(getQcIssueResultDetail.ReleaseNo, instanceId);
            resultInfos.tbBillList = save;
 
            return Ok(result);
        }
        catch (Exception ex)
        {
            // 捕获异常并返回错误信息
            return StatusCode(500, $"启动钉钉工作流实例失败: {ex.Message}");
        }
    }
 
 
    [HttpPost("Save")]
    public ResponseResult Save(ErpQcIssueResult erpQcIssueResult)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(erpQcIssueResult);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.Save(erpQcIssueResult);
            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);
        }
    }
 
}