kyy
2025-11-19 d6701762ff6c9ac836015f4c53ea4aca0f4b3b46
1、外仓扫码
已修改2个文件
171 ■■■■■ 文件已修改
Controllers/Warehouse/MesInvItemInCDetailsController.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesInvItemInCDetailsManager.cs 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesInvItemInCDetailsController.cs
@@ -336,4 +336,52 @@
        }
    }
    /// <summary>
    ///   外仓扫码入库
    /// </summary>
    /// <returns></returns>
    [HttpPost("WcsmBar")]
    public ResponseResult WcsmBar(WarehouseQuery entity)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.WcsmBar(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///   外仓扫码详情
    /// </summary>
    /// <returns></returns>
    [HttpPost("WcsmDetail")]
    public ResponseResult WcsmDetail(WarehouseQuery entity)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.WcsmDetail(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -1,4 +1,4 @@
using Masuit.Tools.Models;
using Masuit.Tools.Models;
using Microsoft.AspNetCore.SignalR.Protocol;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
@@ -12,6 +12,7 @@
using System.Data;
using System.Data.SqlClient;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
namespace NewPdaSqlServer.service.Warehouse;
@@ -1027,6 +1028,126 @@
        };
    }
    public dynamic WcsmBar(WarehouseQuery entity)
    {
        if (entity == null) throw new ArgumentNullException(nameof(entity), "参数对象不能为 null");
        // 参数校验
        if (string.IsNullOrEmpty(entity.userName?.ToString()))
            throw new ArgumentException("操作人员不允许为空", nameof(entity.userName));
        if (string.IsNullOrEmpty(entity.barcode?.ToString()))
            throw new ArgumentException("条码不允许为空", nameof(entity.barcode));
        var _strMsg = "";
        var _status = -1;
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("prc_pda_wcsm", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    // 根据存储过程设置参数
                    SqlParameter[] parameters =
                    {
                        new SqlParameter("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
                        new SqlParameter("@pi_barcode", SqlDbType.NVarChar, 100) { Value = entity.barcode },
                        new SqlParameter("@pi_sectionCode", SqlDbType.NVarChar, 100) { Value = entity.sectionCode == null ? DBNull.Value : (object)entity.sectionCode },
                        new SqlParameter("@pi_IN1", SqlDbType.NVarChar, 30) { Value = DBNull.Value }, // 备用字段1
                        new SqlParameter("@pi_IN2", SqlDbType.NVarChar, 30) { Value = DBNull.Value }, // 备用字段2
                        new SqlParameter("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
                        new SqlParameter("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }
                    };
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[5].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[6].Value ?? -1);
                    if (_status <= 0) throw new Exception(_strMsg);
                    return new
                    {
                        message = _strMsg,
                        status = _status,
                        userName = entity.userName,
                        barcode = entity.barcode,
                        sectionCode = entity.sectionCode
                    };
                }
                catch (Exception ex)
                {
                    throw new Exception($"外仓扫码入库失败:{ex.Message}");
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
    public dynamic WcsmDetail(WarehouseQuery entity)
    {
        if (entity == null) throw new ArgumentNullException(nameof(entity), "参数对象不能为 null");
        // 参数校验
        if (string.IsNullOrEmpty(entity.barcode?.ToString()))
            throw new ArgumentException("条码不允许为空", nameof(entity.barcode));
        // 使用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_wcsm_detailList", conn))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                // 添加参数
                cmd.Parameters.Add(new SqlParameter("@daa001", entity.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);
                }
            }
        }
        // 验证结果集数量
        if (ds.Tables.Count < 4)
        {
            throw new ApplicationException($"存储过程返回的结果集数量不足,期望4个,实际{ds.Tables.Count}个");
        }
        // 转换结果(统一使用ds)
        var unscannedList = Db.Utilities.DataTableToDynamic(ds.Tables[0]);
        var otherUnscannedList = Db.Utilities.DataTableToDynamic(ds.Tables[1]);
        var scanProgressList = Db.Utilities.DataTableToDynamic(ds.Tables[2]);
        var daaInfo = Db.Utilities.DataTableToDynamic(ds.Tables[3]);
        return new
        {
            unscannedList,
            otherUnscannedList,
            scanProgressList,
            daaInfo
        };
    }
    public (List<MesInvItemIns> Items, int TotalCount) GetInvItemInsList(
        WarehouseQuery query)
    {