sjz
2025-11-12 ca74f11ca3a18ed3a41bad4a66af2908f884e69b
WebApi/Gs.Warehouse/Services/MesInvItemMovesManager.cs
@@ -8,6 +8,7 @@
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Warehouse.Services;
@@ -22,8 +23,7 @@
    public MesInvItemMovesManager(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
        (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
@@ -149,21 +149,25 @@
        string dchzlx = model.dchzlx;//调出货主类型
        string drhzlx = model.drhzlx;//调入货主类型
        string inRemark = model.inRemark;//备注
        string gdbh = model.gdbh;
        var _sb = new StringBuilder();
        var _split = "|";
        foreach (var m in model.list)
        {
            string _guid = m.Guid.ToString();
            var _line = m.ItemId + _split
                                    + m.Sqsl + _split
                                    + m.Bz + _split
                                      + m.dczz + _split
                                        + m.dcck + _split
                                          + m.drzz + _split
                                            + m.drck + _split
                                              + m.dchz + _split
                                                 + m.drhz + _split
                                    + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                        + m.Sqsl + _split
                        + m.Bz   + _split
                        + m.dczz + _split
                        + m.dcck + _split
                        + m.drzz + _split
                        + m.drck + _split
                        + m.dchz + _split
                        + m.drhz + _split
                        + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString()) + _split
                        + m.gd + _split
                        + m.gdmx + _split
                        + m.bgy;
            if (_sb.Length > 0)
                _sb.Append("~");
            _sb.Append(_line);
@@ -197,7 +201,8 @@
                        new("@drhzlx", drhzlx),
                        new("@inRemark", inRemark),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                        new("@inLineList", _sb.ToString()),
                        new("@gdbh",gdbh)
                };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
@@ -213,8 +218,7 @@
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_move_edt error:" + ex.Message);
                    LogHelper.Debug(ToString(),"prc_move_edt error:" + ex.Message);
                    mObj.outMsg = ex.Message;
                    mObj.outSum = -1;
                }
@@ -255,26 +259,23 @@
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid",
                            CheckGuid(guid)
                                ? guid
                                : DBNull.Value),
                        new("@inOrderGuid", CheckGuid(guid)? guid : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inMxGuid", mxGuid)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                    cmd.ExecuteNonQuery();
                    _outMsg = parameters[0].Value.ToString();
                    _outSum = int.Parse(parameters[1].Value.ToString());
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_move_del error:" + ex.Message);
                    LogHelper.Debug(ToString(),"prc_move_del error:" + ex.Message);
                    _outMsg = ex.Message;
                    _outSum = -1;
                }
@@ -286,8 +287,7 @@
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
                _outMsg);
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,_outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
@@ -315,7 +315,7 @@
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                         new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrderGuid", _guid),
@@ -326,7 +326,9 @@
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                    cmd.ExecuteNonQuery();
                    m.outMsg = parameters[0].Value.ToString();
                    m.outSum = int.Parse(parameters[1].Value.ToString());
@@ -335,8 +337,7 @@
                {
                    LogHelper.Debug(ToString(), "prc_move_submit:" + ex.Message);
                    m.outMsg = ex.Message;
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                        ex.Message);
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,ex.Message);
                }
                finally
                {
@@ -346,4 +347,286 @@
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     选择生产订单
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> SelectScdd([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string workId = model.workId;
        string ftype  = model.ftype;
        var dset = new DataSet();
        try
        {
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                if (workId == "1")
                {
                    using (var cmd = new SqlCommand("[prc_wom_scdd_select]", conn))
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                            new("@inCurrentPage", currentPage),
                            new("@inEveryPageSize", everyPageSize),
                            new("@inSortName", sortName),
                            new("@inSortOrder", ""),
                            new("@inQueryWhere", keyWhere),
                            new("@workId", workId),
                            new("@inP1", ""),
                            new("@inP2", "")
                        };
                        foreach (var parameter in parameters)
                        {
                            cmd.Parameters.Add(parameter);
                        }
                        using (var dt = new SqlDataAdapter(cmd))
                        {
                            dt.Fill(dset, "0");
                        }
                    }
                    conn.Close();
                }
                else
                {
                    using (var cmd = new SqlCommand("[prc_wom_wwdd_select]", conn))
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                            new("@inCurrentPage", currentPage),
                            new("@inEveryPageSize", everyPageSize),
                            new("@inSortName", sortName),
                            new("@inSortOrder", ""),
                            new("@inQueryWhere", keyWhere),
                            new("@workId", workId),
                            new("@inP1", ""),
                            new("@inP2", "")
                        };
                        foreach (var parameter in parameters)
                        {
                            cmd.Parameters.Add(parameter);
                        }
                        using (var dt = new SqlDataAdapter(cmd))
                        {
                            dt.Fill(dset, "0");
                        }
                    }
                    conn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "prc_wom_scdd_select error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
        {
            var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            var pages = intTotal % everyPageSize != 0 ? intTotal / everyPageSize + 1 : intTotal / everyPageSize;
            _pglist.total = intTotal;
            _pglist.everyPageSize = everyPageSize;
            _pglist.pages = pages;
            var _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,ReturnCode.Success, "读取成功");
    }
    /// <summary>
    ///     选择委外订单
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> SelectWwdd([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string workId = model.workId;
        var dset = new DataSet();
        try
        {
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_wom_wwdd_select]", conn))
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@inCurrentPage", currentPage),
                        new("@inEveryPageSize", everyPageSize),
                        new("@inSortName", sortName),
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@workId", workId),
                        new("@inP1", ""),
                        new("@inP2", "")
                    };
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    using (var dt = new SqlDataAdapter(cmd))
                    {
                        dt.Fill(dset, "0");
                    }
                }
                conn.Close();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "prc_wom_wwdd_select error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
        {
            var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            var pages = intTotal % everyPageSize != 0 ? intTotal / everyPageSize + 1 : intTotal / everyPageSize;
            _pglist.total = intTotal;
            _pglist.everyPageSize = everyPageSize;
            _pglist.pages = pages;
            var _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "读取成功");
    }
    /// <summary>
    ///     根据用户选择的单据guid,读取需要作入库到货单的明细
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<List<dynamic>> SelectScddToView([FromBody] dynamic model)//(JArray guidList)
    {
        var intArray = model.lst.ToObject<string[]>();
        string workId = model.workId;
        string ftype = model.ftype;
        var sbLine = new StringBuilder();
        foreach (var str in intArray)
        {
            if (sbLine.Length > 0)
                sbLine.Append(",");
            sbLine.Append(str);
        }
        var lst = new List<dynamic>();
        var dset = new DataSet();
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            if (workId == "1")
            {
                if (ftype == "委外(WW)")
                {
                    return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Exception, "委外");
                }
                using (var cmd = new SqlCommand("[prc_db_scdd_select_to_grid]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                            new("@inP1", sbLine.ToString())
                        };
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        using (var dt = new SqlDataAdapter(cmd))
                        {
                            dt.Fill(dset, "0");
                        }
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(), "prc_db_scdd_select_to_grid error:" + ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            else
            {
                if (ftype == "标准(NORMAL)")
                {
                    return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Exception, "生产");
                }
                using (var cmd = new SqlCommand("[prc_db_wwdd_select_to_grid]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                            new("@inP1", sbLine.ToString())
                        };
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        using (var dt = new SqlDataAdapter(cmd))
                        {
                            dt.Fill(dset, "0");
                        }
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(), "prc_db_wwdd_select_to_grid error:" + ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
        }
        if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) //有数据
            lst = dset.Tables[0].TableToDynamicList();
        return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Success,"读取成功!");
    }
}