啊鑫
8 天以前 0aa54059b26e6641196e9953490dd18616e916e3
service/Warehouse/TransferOutManager.cs
@@ -1,10 +1,10 @@
using System.Data;
using System.Data.SqlClient;
using MES.Service.Modes;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using SqlSugar;
namespace NewPdaSqlServer.service.Warehouse;
@@ -33,9 +33,10 @@
                pid = g.Key,
                sq = g.Sum(x => x.FQty), // 申请数量合计
                ys = g.Sum(x => x.SQty), // 调出已扫数量合计
                rs = g.Sum(x => x.RQty), // 调入已扫数量合计
                rs = g.Sum(x => x.RQty) // 调入已扫数量合计
            })
            .Where(x => !((x.sq ?? 0) == (x.ys ?? 0) && (x.sq ?? 0) == (x.rs ?? 0)))
            .Where(x =>
                !((x.sq ?? 0) == (x.ys ?? 0) && (x.sq ?? 0) == (x.rs ?? 0)))
            .Select(x => x.pid)
            .ToList();
@@ -59,13 +60,17 @@
    {
        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("调拨单号为空");
        var sql1 = string.Format(@"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'", query.billNo);
        var sql1 =
            string.Format(
                @"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'",
                query.billNo);
        var dbck = Db.Ado.SqlQuery<ItemDetailModel>(sql1);
        if (dbck.Count < 1) throw new Exception("调拨单号不存在或未审核!");
        var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.FQty - b.SQty DSQty ,
        var sql2 = string.Format(
            @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.FQty - b.SQty DSQty ,
       dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw
    FROM MES_DBCK_DETAIL B
    LEFT JOIN MES_DBCK A ON A.ID = B.pid
@@ -132,13 +137,17 @@
    {
        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("调拨单号为空");
        var sql1 = string.Format(@"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'", query.billNo);
        var sql1 =
            string.Format(
                @"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'",
                query.billNo);
        var dbck = Db.Ado.SqlQuery<ItemDetailModel>(sql1);
        if (dbck.Count < 1) throw new Exception("调拨单号不存在或未审核!");
        var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.RQty RQty,b.SQty - b.RQty DSQty ,
        var sql2 = string.Format(
            @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.RQty RQty,b.SQty - b.RQty DSQty ,
       dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw
    FROM MES_DBCK_DETAIL B
    LEFT JOIN MES_DBCK A ON A.ID = B.pid
@@ -202,12 +211,13 @@
        // 根据SQL查询条件获取待处理的出库明细
        // 关联查询TransferOutDetail、TransferOut和MesItems三张表
        // 筛选条件:未完成数量大于0且单据已审核
        var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
                (b, a, s) => new JoinQueryInfos(
        var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>((b, a, s) =>
                new JoinQueryInfos(
                    JoinType.Left, b.Pid == a.Id,
                    JoinType.Left, b.FMaterialId == s.Id.ToString()))
            .Where((b, a, s) =>
                !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0)) // 未完成数量大于0
                !((b.FQty ?? 0) == (b.SQty ?? 0) &&
                  (b.FQty ?? 0) == (b.RQty ?? 0)) // 未完成数量大于0
                && a.FBillNo == p_bill_no // 匹配单据号
                && a.FApproveStatus == 1) // 单据已审核
            .OrderBy((b, a, s) => s.ItemNo)
@@ -280,7 +290,7 @@
                        new("@split_num", SqlDbType.NVarChar, 300),
                        new("@c_user", query.userName),
                        new("@p_bill_no", p_bill_no),
                        new("@p_item_barcode", p_item_barcode),
                        new("@p_item_barcode", p_item_barcode)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
@@ -294,7 +304,7 @@
                    var barcodeNum = parameters[2].Value.ToString();
                    var splitNum = parameters[3].Value.ToString();
                    var result = Convert.ToInt32(_intSum);
                    if (result <= 0) throw new Exception(_strMsg);
@@ -360,7 +370,9 @@
                        && !string.IsNullOrEmpty(x.FStockInId)
                        && !string.IsNullOrEmpty(x.FOwnerInId))
            .First();
        if (stock == null) throw new Exception($"调拨明细中 【物料】或 【调入仓库】或【调入货主】信息不存在,请核对!{p_item_barcode}");
        if (stock == null)
            throw new Exception(
                $"调拨明细中 【物料】或 【调入仓库】或【调入货主】信息不存在,请核对!{p_item_barcode}");
        // 查询物料信息
        var item = Db.Queryable<MesItems>()
@@ -387,7 +399,7 @@
                        new("@c_user", query.userName),
                        new("@p_bill_no", p_bill_no),
                        new("@p_item_barcode", p_item_barcode),
                        new("@p_depot_section_code", query.sectionCode),
                        new("@p_depot_section_code", query.sectionCode)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
@@ -401,7 +413,7 @@
                    var barcodeNum = parameters[2].Value.ToString();
                    var outBillNo = parameters[3].Value.ToString();
                    var result = Convert.ToInt32(_intSum);
                    if (result <= 0) throw new Exception(_strMsg);
@@ -450,7 +462,9 @@
                        && !string.IsNullOrEmpty(x.FStockInId)
                        && !string.IsNullOrEmpty(x.FOwnerInId))
            .First();
        if (stock == null) throw new Exception($"调拨明细中 【物料】或 【调入仓库】或【调入货主】信息不存在,请核对!{p_item_barcode}");
        if (stock == null)
            throw new Exception(
                $"调拨明细中 【物料】或 【调入仓库】或【调入货主】信息不存在,请核对!{p_item_barcode}");
        // 查询物料信息
        var item = Db.Queryable<MesItems>()
@@ -496,8 +510,8 @@
                    var dto = new ProductionPickDto
                    {
                        daa001 = query.daa001,
                        barcode = query.barcode,//原条码
                        cfBarcode = _cfBar//拆分后条码
                        barcode = query.barcode, //原条码
                        cfBarcode = _cfBar //拆分后条码
                    };
                    return dto;
@@ -513,5 +527,4 @@
            }
        }
    }
}