啊鑫
3 天以前 00a72fff219241eb5b0405a066cc859d07cf7735
service/Warehouse/MesItemQtManager.cs
@@ -1,11 +1,14 @@
using System.Data;
using System.Data.SqlClient;
using Masuit.Tools;
using Masuit.Tools;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using SqlSugar;
using System.Data;
using System.Data.SqlClient;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
namespace NewPdaSqlServer.service.Warehouse;
@@ -36,8 +39,7 @@
        {
            // 返回单号字符串列表
            var blDetails = Db.Ado.SqlQuery<string>(
                "EXEC prc_pda_qtck_list @pi_orgId,@inP1,@inP2,@inP3,@inP4",
                parameters);
                "EXEC prc_pda_qtck_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters);
            return blDetails;
        }
        catch (Exception ex)
@@ -69,16 +71,15 @@
        };
        try
        {
            var blDetails = Db.Ado.SqlQuery<dynamic>(
                "EXEC prc_pda_qtck_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4",
                parameters);
            List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>(
                "EXEC prc_pda_qtck_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
            {
                items,
                ysitems,
                allList = blDetails
                items = items,
                ysitems = ysitems,
                allList = blDetails,
            };
        }
        catch (Exception ex)
@@ -124,6 +125,8 @@
            throw new Exception($"mes中不存在此条码,请核对!{p_item_barcode}");
        // 获取库存信息
        var stock = Db.Queryable<MesInvItemStocks>()
            .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0)
@@ -151,9 +154,7 @@
        // 获取其他出库单信息
        var mesItemQt = Db.Queryable<MesItemQt>()
            .Where(it =>
                it.Qtck == p_bill_no && it.Qt015 == true && it.Qt026 == true &&
                it.Qt029 == true && it.Qt032 == true)
            .Where(it => it.Qtck == p_bill_no && it.Qt015 == true && it.Qt026 == true && it.Qt029 == true && it.Qt032 == true)
            .First();
        if (mesItemQt == null)
@@ -169,13 +170,16 @@
        if (qtDetail == null) throw new Exception("扫码物料非本次出库申请物料,请核对!");
        if (mesItemQt.Qt014)
        if (mesItemQt.Qt014 == true)
            throw new Exception($"其他出库申请单 {p_bill_no} 已完结,请确认!");
        // 检查仓库是否一致
        if (qtDetail.DepotId != stock.DepotId)
            throw new Exception(
                $"扫码出货仓库id{qtDetail.DepotId}与其他出库申请仓库{stock.DepotId}不一致,请核对!");
        // 检查剩余数量
@@ -187,8 +191,8 @@
        if (stock.Quantity > remainingQty)
        {
            var pendingList = Db
                .Queryable<MesItemQt, MesItemQtDatall, MesItems>((a, b, c) =>
                    new JoinQueryInfos(
                .Queryable<MesItemQt, MesItemQtDatall, MesItems>(
                    (a, b, c) => new JoinQueryInfos(
                        JoinType.Left, a.Guid == b.QtGuid,
                        JoinType.Left, b.ItemId == c.Id.ToString()))
                .Where((a, b, c) => a.Qtck == p_bill_no &&
@@ -207,7 +211,7 @@
            var message =
                $"请确认发料数量!!已带出满足其他出库单的发料数量 {remainingQty} 确认后请点击条码拆分";
            throw new Exception("条码数量超出发料数量,请拆分后再扫描!");
            throw new Exception($"条码数量超出发料数量,请拆分后再扫描!");
            query.itemNo = stock.ItemNo;
            query.Num = stock.Quantity;
@@ -295,8 +299,7 @@
            // 检查是否已存在出库物料记录
            var existingOutItem = Db.Queryable<MesInvItemOutItems>()
                .Where(it =>
                    it.ItemOutId == outId && it.ItemId == barcode.ItemId &&
                    it.ItemDabid == qtDetail.Guid)
                    it.ItemOutId == outId && it.ItemId == barcode.ItemId && it.ItemDabid == qtDetail.Guid)
                .First();
            if (existingOutItem == null)
@@ -338,9 +341,7 @@
                commit += db.Updateable<MesInvItemOutItems>()
                    .SetColumns(it =>
                        it.TlQty == (it.TlQty ?? 0) + stock.Quantity)
                    .Where(it =>
                        it.ItemOutId == outId && it.ItemId == barcode.ItemId &&
                        it.ItemDabid == qtDetail.Guid)
                    .Where(it => it.ItemOutId == outId && it.ItemId == barcode.ItemId && it.ItemDabid == qtDetail.Guid)
                    .ExecuteCommand();
            }
@@ -431,8 +432,8 @@
                    .ExecuteCommand();
            mesItemQtDatalls = Db
                .Queryable<MesItemQt, MesItemQtDatall, MesItems>((a, b, c) =>
                    new JoinQueryInfos(
                .Queryable<MesItemQt, MesItemQtDatall, MesItems>(
                    (a, b, c) => new JoinQueryInfos(
                        JoinType.Left, a.Guid == b.QtGuid,
                        JoinType.Left, b.ItemId == c.Id.ToString()))
                .Where((a, b, c) => a.Qtck == p_bill_no &&
@@ -465,10 +466,8 @@
            // 创建 插入日志
            var logService = new LogService();
            var LogMsg = "【PDA】其他出库。条码【" + query.barcode + "】数量【" +
                         stock.Quantity + "】 出库单号【" + outNo + "】";
            logService.CreateLog(db, query.userName, mesItemQt.Guid.ToString(),
                "MES_ITEM_QT", LogMsg, mesItemQt.Qtck);
            var LogMsg = "【PDA】其他出库。条码【" + query.barcode + "】数量【"+ stock.Quantity.ToString() + "】 出库单号【" + outNo + "】";
            logService.CreateLog(db, query.userName, mesItemQt.Guid.ToString(), "MES_ITEM_QT", LogMsg, mesItemQt.Qtck);
            if (commit < 5) throw new Exception("更新失败");
@@ -864,8 +863,8 @@
            // 获取剩余待处理明细
            mesItemQtDatalls = db
                .Queryable<MesItemQt, MesItemQtDatall, MesItems>((a, b, c) =>
                    new JoinQueryInfos(
                .Queryable<MesItemQt, MesItemQtDatall, MesItems>(
                    (a, b, c) => new JoinQueryInfos(
                        JoinType.Left, a.Guid == b.QtGuid,
                        JoinType.Left, b.ItemId == c.Id.ToString()))
                .Where((a, b, c) => a.Qtck == p_bill_no &&
@@ -902,8 +901,7 @@
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            if (query.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
            if (query.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空");
            if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
            if (query.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空"); if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
            using (var cmd = new SqlCommand("[prc_pda_QTCK]", conn))
            {