啊鑫
8 天以前 0aa54059b26e6641196e9953490dd18616e916e3
service/Warehouse/MesXsthManager.cs
@@ -1,15 +1,11 @@
using Masuit.Tools;
using MES.Service.Modes;
using System.Data;
using System.Data.SqlClient;
using Masuit.Tools;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using OracleInternal.Sharding;
using SqlSugar;
using SqlSugar.Extensions;
using System.Data;
using System.Data.SqlClient;
namespace NewPdaSqlServer.service.Warehouse;
@@ -19,13 +15,34 @@
    ///     获取销售退货申请列表
    /// </summary>
    /// <returns>销售退货申请列表</returns>
    public List<string> GetXsthBillNo(WarehouseQuery query)
    public dynamic GetXsthBillNo(WarehouseQuery query, dynamic RequestInfo)
    {
        var list = Db.Queryable<SalesReturnNotice>()
            .Where(s => s.CheckStatus == true)
            .Select(s => s.BillNo).ToList();
        var orgId = RequestInfo.OrgId;
        return list;
        if (orgId == null)
            throw new Exception("组织不存在!");
        // 获取未完成的退料单号列表
        var parameters = new[]
        {
            new SugarParameter("@pi_orgId", orgId),
            new SugarParameter("@inP1", null),
            new SugarParameter("@inP2", null),
            new SugarParameter("@inP3", null),
            new SugarParameter("@inP4", null)
        };
        try
        {
            // 返回单号字符串列表
            var blDetails = Db.Ado.SqlQuery<string>(
                "EXEC prc_pda_xsth_list @pi_orgId,@inP1,@inP2,@inP3,@inP4",
                parameters);
            return blDetails;
        }
        catch (Exception ex)
        {
            throw new Exception($"{ex.Message}");
        }
    }
    /// <summary>
@@ -33,39 +50,55 @@
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>物料明细列表</returns>
    public List<ItemDetailModel> GetMesItemDetailByBillNo(
        WarehouseQuery query)
    public dynamic GetMesItemDetailByBillNo(dynamic query, dynamic RequestInfo)
    {
        // 关联查询物料表、物料明细表和物料基础信息表
        var mesItemTblDetails = Db
            .Queryable<SalesReturnNotice, SalesReturnNoticeDetail, MesItems>(
                (a, b, c) => new JoinQueryInfos(
                    JoinType.Left,
                    a.Id == b.Pid,
                    JoinType.Left,
                    b.MaterialId == c.Id.ToString())
            ).Where((a, b, c) => a.BillNo == query.billNo && a.CheckStatus == true)
            .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel
        if (string.IsNullOrEmpty(query.billNo))
            throw new Exception("请选单据号!");
        if (query == null)
            throw new ArgumentNullException(nameof(query), "参数对象不能为null");
        if (string.IsNullOrEmpty(query.billNo?.ToString()))
            throw new ArgumentException("单据号不能为空", nameof(query.billNo));
        var orgId = RequestInfo.OrgId;
        if (orgId == null)
            throw new Exception("组织不存在!");
        // 获取未完成的销售退货明细
        var parameters = new[]
        {
            new SugarParameter("@billNo", query.billNo),
            new SugarParameter("@pi_orgId", orgId),
            new SugarParameter("@inP1", null),
            new SugarParameter("@inP2", null),
            new SugarParameter("@inP3", null),
            new SugarParameter("@inP4", null)
        };
        try
        {
            var blDetails = Db.Ado.SqlQuery<dynamic>(
                "EXEC prc_pda_xsth_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4",
                parameters);
            var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 待扫物料
            var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 已扫物料
            return new
            {
                ItemNo = c.ItemNo,
                ItemName = c.ItemName,
                ItemModel = c.ItemModel,
                FQty = b.SqQty, // 申请数量
                SQty = b.YsQty, // 已扫数量
                Pid = b.Pid.ToString(),
                FMaterialId = b.MaterialId,
                Id = b.Id.ToString()
            }).ToList();
        // 筛选出待退数量大于已退数量的记录
        //var itemTblDetails = mesItemTblDetails
        //    .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList();
        return mesItemTblDetails;
                items,
                ysitems,
                Count = items.Count + ysitems.Count
            };
        }
        catch (Exception ex)
        {
            // 保留原有异常处理逻辑
            throw new Exception($"{ex.Message}");
        }
    }
    /// <summary>
    /// 销售退货入库
    ///     销售退货入库
    /// </summary>
    /// <param name="unity"></param>
    /// <returns></returns>
@@ -77,7 +110,8 @@
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            if (unity.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
            if (unity.sectionCode.IsNullOrEmpty()) throw new Exception("库位编号不允许为空");
            if (unity.sectionCode.IsNullOrEmpty())
                throw new Exception("库位编号不允许为空");
            if (unity.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
            if (unity.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空");
@@ -95,12 +129,11 @@
                        new("@pi_user", unity.userName),
                        new("@pi_barcode", unity.barcode),
                        new("@pi_sectionCode", unity.sectionCode),
                        new("@pi_billno", unity.billNo),
                        new("@pi_billno", unity.billNo)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                   // parameters[2].Direction = ParameterDirection.Output;
                    // parameters[2].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
@@ -114,7 +147,6 @@
                    return _strMsg;
                    //return 0;
                }
                catch (Exception ex)
                {