南骏 池
2025-06-05 0010dd10c41c5c990bf6cc1b40ad857a6c956cbe
service/Warehouse/MesItemQtrkManager.cs
@@ -1,6 +1,7 @@
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using SqlSugar;
using System.Text.RegularExpressions;
@@ -17,42 +18,36 @@
            .ToList();
    }
    public List<MesItemQtrrDetail> GetQtckDetailList(WarehouseQuery query)
    public ProductionPickDto GetQtckDetailList(WarehouseQuery query)
    {
        // 1. 验证申请单是否存在
        var qtrk = Db.Queryable<MesItemQtrk>()
            .Where(x => x.Qtck == query.billNo)
            .First();
        if (qtrk == null)
            throw new Exception($"未查询到此其他入库申请单 {query.billNo}");
        // 关联查询物料表、物料明细表和物料基础信息表
        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("申请单号为空");
        // 2. 验证申请单状态
        if (qtrk.Qt015 != 1)
            throw new Exception($"其他入库申请单 {query.billNo} 未审核,请确认!");
        var mesInvItemOuts = base.GetSingle(it => it.Qtck == query.billNo);
        if (mesInvItemOuts == null) throw new Exception("其他入库申请单不存在");
        if (qtrk.Qt014 == 1)
            throw new Exception($"其他入库申请单 {query.billNo} 已完结,请确认!");
        var sql = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.qd007 FQty,A.qd008 SQty,A.qd007 - A.qd008 DSQty
fROM MES_ITEM_QTRR_DETAIL A
         LEFT JOIN MES_ITEM_QTRK B ON A.qtrkGuid = B.guid
         LEFT JOIN MES_ITEMS C ON A.itemId = C.item_id
WHERE B.qtck = '{0}'", query.billNo);
        // 3. 查询申请单明细
        var details = Db.Queryable<MesItemQtrk, MesItemQtrrDetail, MesItems>(
                (a, b, c) => new JoinQueryInfos(
                    JoinType.Left, a.Guid == b.QtrkGuid,
                    JoinType.Left, c.Id.ToString() == b.ItemId))
            .Where((a, b, c) =>
                a.Qtck == query.billNo &&
                (b.Qd007 ?? 0) - (b.Qd008 ?? 0) > 0)
            .OrderBy((a, b, c) => b.Qd002)
            .Select((a, b, c) => new MesItemQtrrDetail
            {
                Qtck = a.Qtck,
                ItemNo = c.ItemNo,
                ItemName = c.ItemName,
                Qd007 = b.Qd007 ?? 0,
                Qd008 = b.Qd008 ?? 0
            })
            .ToList();
        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql);
        return details;
        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
        var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
        var dto = new ProductionPickDto
        {
            //daa001 = womdaa.Daa001,
            //PlanNo = womcaa.Caa020,
            items = DS_list,
            Ysitems = YS_list
        };
        return dto;
    }
    public string ScanInDepotsQT(WarehouseQuery query)