南骏 池
2025-03-13 ae6bbf378b56b3a583527c546f8050b9813c1d1b
service/Wom/WomdaaManager.cs
@@ -1,6 +1,8 @@
using System.Data;
using System.Data.SqlClient;
using Masuit.Tools;
using MES.Service.Modes;
using Microsoft.SqlServer.Server;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
@@ -17,9 +19,9 @@
    public List<string> GetProductionPickDaa001(WarehouseQuery query)
    {
        var sql =
            "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID                     FROM WOMDAB                    WHERE DAB006 > DAB007                   GROUP BY PID) B ON A.ID = B.PID WHERE DAA001 LIKE '%" +
            "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB  WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " +
            query.daa001 +
            "%' and DAA018 != '完工' AND DAA022 = 1 AND UN_NUM > 0 AND ROWNUM <= 10 order by a.id desc";
            " and DAA018 != '完工' AND DAA022 = 1 AND UN_NUM > 0 AND ROWNUM <= 10 order by a.id desc";
        return Db.Ado.SqlQuery<string>(sql);
    }
@@ -77,7 +79,9 @@
                        daa001 = query.daa001,
                        barcodeNum = barcodeNum,
                        splitNum = splitNum,
                        barcode = query.barcode
                        barcode = query.barcode,
                        strMsg = _strMsg,
                        result = _intSum
                    };
                    return dto;
@@ -161,7 +165,8 @@
        var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
                new JoinQueryInfos(JoinType.Left,
                    a.Daa002 == i.ItemId.ToString()))
            .Where((a, i) => a.Daa001 == query.daa001)
            .Where((a, i) => a.Daa001 == query.daa001
                    && a.Fstatus == 1)
            .Select((a, i) => new
            {
                a.Daa001, a.CaaGuid
@@ -169,31 +174,43 @@
        if (womdaa?.Daa001 == null) throw new Exception("工单号不存在");
        var womdabs = Db.Queryable<Womdaa, Womdab, MesItems, Womcab>(
                (a, b, c, d) =>
                    new JoinQueryInfos(
                        JoinType.Left,
                        a.Guid == b.DaaGuid,
                        JoinType.Inner,
                        c.Id.ToString() ==
                        b.Dab003,
                        JoinType.Inner, b.Erpid == d.Erpid
                    ))
            .Where((a, b, c, d) =>
                a.Daa001 == query.daa001 && d.IssueType == "1")
            .Select((a, b, c, d) => new Womdab
            {
                Pid = b.Pid,
                Dab003 = b.Dab003,
                Dab006 = b.Dab006,
                Dab007 = b.Dab007,
                wNum = b.Dab006 - b.Dab007, // 计算字段 W_NUM
                ItemName = c.ItemName, // 动态字段 ITEM_NAME
                ItemNo = c.ItemNo // 动态字段 ITEM_NO
            })
            .ToList();
        //var womdabs = Db.Queryable<Womdaa, Womdab, MesItems, Womcab>(
        //        (a, b, c, d) =>
        //            new JoinQueryInfos(
        //                JoinType.Left,
        //                a.Guid == b.DaaGuid,
        //                JoinType.Inner,
        //                c.Id.ToString() ==
        //                b.Dab003,
        //                JoinType.Inner, b.Erpid == d.Erpid
        //            ))
        //    .Where((a, b, c, d) =>
        //        a.Daa001 == query.daa001 && d.Iss1ueType == "1")
        //    .Select((a, b, c, d) => new ItemDetailModel
        //    {
        //        ItemNo = c.ItemNo,
        //        ItemName = c.ItemName,
        //        ItemModel = c.ItemModel,
        //        FQty = b.Dab006, // 申请数量
        //        SQty = b.Dab007, // 已扫数量
        //        DSQty = b.Dab006 - b.Dab007, // 已扫数量
        //    })
        //    .ToList();
        var list = womdabs.Where(s => s.wNum > 0).ToList();
        var sql =string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.dab006 FQty,b.dab007 SQty,b.dab006 - b.dab007 DSQty ,
       dbo.F_QX_GETRECODEPOTSE(B.dab003) as RecoKw
    FROM WOMDAB B
    LEFT JOIN WOMDAA A ON A.guid = B.daaGuid
    LEFT JOIN MES_ITEMS C ON  B.dab003 = C.item_id
    LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
    WHERE daa001 = '{0}' AND ISSUE_TYPE = 1 ORDER BY DAB002", query.daa001);
        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql);
        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
        var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
        var mesInvItemOutCDetailsList = Db
            .Queryable<MesInvItemOutCDetails, MesItems, MesDepots>
@@ -218,13 +235,18 @@
        var womcaa = Db.Queryable<Womcaa>().Where(s => s.Guid == womdaa.CaaGuid)
            .First();
        if (womcaa == null)
        {
            throw new Exception("生产任务单不存在");
        }
        var dto = new ProductionPickDto
        {
            daa001 = womdaa.Daa001,
            PlanNo = womcaa.Caa020,
            totals = womdabs,
            daisao = list,
            yisao = mesInvItemOutCDetailsList
            items = DS_list,
            Ysitems = YS_list
            // yisao = mesInvItemOutCDetailsList
        };
        return dto;