xwt
2 天以前 986bbf207ec3ecab9dfbf3fed50b565d2a2676fc
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
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.util;
using SqlSugar;
using System.Data;
 
namespace MES.Service.service.QC;
 
public class GDBLQRService
{
    /// <summary>
    /// 获取工单头信息和备料明细列表(双游标)
    /// </summary>
    public (dynamic Header, List<dynamic> Details, string Msg) GetMoFullInfo(string moNo)
    {
        var db = SqlSugarHelper.GetInstance();
 
        var parameters = new List<SugarParameter>
    {
        new("pi_mo_no", moNo),
        new("po_header", null) { Direction = ParameterDirection.Output },
        new("po_details", null) { Direction = ParameterDirection.Output },
        new("po_msg", null)
        {
            Direction = ParameterDirection.Output,
            DbType = System.Data.DbType.String,
            Size = 200
        }
    };
 
        DataSet resultSets = db.Ado.UseStoredProcedure().GetDataSetAll("PRC_PREPARE_GET_MO_FULL_INFO", parameters);
 
        var msg = parameters.First(p => p.ParameterName == "po_msg").Value?.ToString() ?? "OK";
 
        if (msg != "OK")
            return (null, null, msg); // ❌ 状态异常,不返回任何数据
 
        var header = resultSets.Tables[0].ToDynamic().FirstOrDefault();
        var details = resultSets.Tables[1].ToDynamic();
        return (header, details, msg);
    }
 
    /// <summary>
    /// 扫码更新物料扫描数量
    /// </summary>
    public string ScanBarcode(string moNo, string barcode)
    {
        var db = SqlSugarHelper.GetInstance();
 
        var parameters = new List<SugarParameter>
        {
            new("pi_mo_no", moNo),
            new("pi_barcode", barcode),
            new("po_msg", null)
            {
                Direction = ParameterDirection.Output,
                DbType = System.Data.DbType.String, // ✅ 显式指定 System.Data.DbType 避免歧义
                Size = 200
            }
        };
 
        db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_SCAN_BARCODE", parameters);
 
        return parameters.First(p => p.ParameterName == "po_msg").Value?.ToString() ?? "";
    }
 
    /// <summary>
    /// 工单生产确认(打标确认人和时间)
    /// </summary>
    public void ConfirmPrepare(string moNo, string user)
    {
        var db = SqlSugarHelper.GetInstance();
 
        var parameters = new List<SugarParameter>
        {
            new("pi_mo_no", moNo),
            new("pi_user", user)
        };
 
        db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_PRODUCTION_CONFIRM", parameters);
    }
 
    /// <summary>
    /// 工单品质复核确认(打标确认人和时间)
    /// </summary>
    public void ReviewPrepare(string moNo, string user)
    {
        var db = SqlSugarHelper.GetInstance();
 
        var parameters = new List<SugarParameter>
        {
            new("pi_mo_no", moNo),
            new("pi_user", user)
        };
 
        db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_QUALITY_REVIEW", parameters);
    }
}