cnf
2025-11-24 336ef950ae9b3f89e09f1b64d68adf6e53a331b5
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
using System.Data;
using System.Data.SqlClient;
using Masuit.Tools;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using SqlSugar;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
 
namespace NewPdaSqlServer.service.Warehouse;
 
public class MesCprkManager : Repository<MesCgthSq>
{
    public dynamic GetBarInfo(WarehouseQuery unity)
    {
 
        // 使用ADO.NET直接调用存储过程
        var ds = new DataSet();
 
        // 假设您使用的是SQL Server,创建SqlConnection
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            conn.Open();
 
            using (var cmd = new SqlCommand("prc_pda_cprk_wllist", conn))
            {
                cmd.CommandType = CommandType.StoredProcedure;
 
                // 添加参数
                cmd.Parameters.Add(new SqlParameter("@barcode", unity.barcode));
                cmd.Parameters.Add(new SqlParameter("@pi_orgId", DBNull.Value));
                cmd.Parameters.Add(new SqlParameter("@inP1", DBNull.Value));
                cmd.Parameters.Add(new SqlParameter("@inP2", DBNull.Value));
                cmd.Parameters.Add(new SqlParameter("@inP3", DBNull.Value));
                cmd.Parameters.Add(new SqlParameter("@inP4", DBNull.Value));
 
                using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
                {
                    adapter.Fill(ds);
                }
            }
        }
 
        // 转换结果
        var Info = ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0 ? Db.Utilities.DataTableToDynamic(ds.Tables[0]) : Enumerable.Empty<dynamic>();
        var XcslItem = ds.Tables.Count > 1 && ds.Tables[1].Rows.Count > 0 ? Db.Utilities.DataTableToDynamic(ds.Tables[1]) : Enumerable.Empty<dynamic>();
        var XcslYjsBar = ds.Tables.Count > 2 && ds.Tables[2].Rows.Count > 0 ? Db.Utilities.DataTableToDynamic(ds.Tables[2]) : Enumerable.Empty<dynamic>();
        //var daaInfo = ds.Tables[3]?.Rows?.Count > 0 ? Db.Utilities.DataTableToDynamic(ds.Tables[3]) : null;
 
        var dto = new
        {
            barcodeInfo = Info ?? new object[0], // 如果为null则返回空数组
            XcslItemList = XcslItem ?? new object[0],
            XcslWjsBarList = XcslYjsBar ?? new object[0],
            //XcslYjsBarList = XcslYjsBar ?? new object[0],
            //DaaInfoList = daaInfo ?? new object[0]
        };
 
        return dto;
 
        //return Db.Queryable<MesInvItemBarcodes>()
        //    .Where(s => s.ItemBarcode == unity.barcode)
        //    .First(); // 返回第一行数据,如果没有则返回 null
    }
 
    public MesItems GetItemNo(decimal strItemId)
    {
        return Db.Queryable<MesItems>()
            .Where(s => s.Id == strItemId)
            .First();
    }
 
    public string CPRK(WarehouseQuery unity)
    {
        var _strMsg = "";
        var _intSum = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            if (unity.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
            if (unity.sectionCode.IsNullOrEmpty()) throw new Exception("库位编号不允许为空");
            if (unity.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
 
            using (var cmd = new SqlCommand("[prc_pda_inv_cprk]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@po_outMsg", SqlDbType.NVarChar, 300),
                        new("@po_outSum", SqlDbType.NVarChar, 300),
                        new("@po_womInBarSum", SqlDbType.NVarChar, 300),
                        new("@pi_user", unity.userName),
                        new("@pi_barcode", unity.barcode),
                        new("@pi_sectionCode", unity.sectionCode),
 
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    parameters[2].Direction = ParameterDirection.Output;
 
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[0].Value.ToString();
                    _intSum = parameters[1].Value.ToString();
 
                    var result = Convert.ToInt32(_intSum);
                    if (result <= 0) throw new Exception(_strMsg);
 
                    return _strMsg;
 
                    //return 0;
 
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
 
 
}