cnf
2025-09-02 0ea425da280a4d889772f0fb15a7d98272ca0c78
物料按仓管查询
已修改2个文件
103 ■■■■■ 文件已修改
Controllers/Wom/WomdaaController.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Wom/WomdaaManager.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Wom/WomdaaController.cs
@@ -44,6 +44,31 @@
    //GetItemsByDaa001
    /// <summary>
    ///     根据工单号和登录账号获取代领物料明细
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetItemsByDaa001User")]
    public ResponseResult GetItemsByDaa001User(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetItemsByDaa001User(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //GetItemsByDaa001
    /// <summary>
    ///     根据工单号获取代领物料明细
    /// </summary>
    /// <returns></returns>
service/Wom/WomdaaManager.cs
@@ -27,6 +27,12 @@
        return Db.Ado.SqlQuery<string>(sql);
    }
   //根据工单号和登录账号返回产品型号和待领物料
    public ProductionPickDto GetItemsByDaa001User(WarehouseQuery query)
    {
        return getDaa001User(query);
    }
    //根据工单号返回产品型号和待领物料
    public ProductionPickDto GetItemsByDaa001(WarehouseQuery query)
    {
@@ -164,6 +170,78 @@
        }
    }
    private ProductionPickDto getDaa001User(WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.daa001)) throw new Exception("工单号为空");
        var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
                new JoinQueryInfos(JoinType.Left,
                    a.Daa002 == i.ItemId.ToString()))
            .Where((a, i) => a.Daa001 == query.daa001
                    && a.Fstatus == 1)
            .Select((a, i) => new
            {
                a.Daa001,
                a.CaaGuid
            }).First();
        if (womdaa?.Daa001 == null) throw new Exception("工单号不存在");
        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 F_WPVT_BASE_QTR='{1}' AND ISSUE_TYPE = 1 ORDER BY DAB002", query.daa001,query.userName);
        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>
            ((a, b, c) =>
                new JoinQueryInfos(
                    JoinType.Inner, a.ItemId == b.Id,
                    JoinType.Inner, c.DepotId == a.DepotId
                ))
            .Where((a, b, c) => a.WorkNo == query.daa001)
            .Select((a, b, c) => new MesInvItemOutCDetails
            {
                ItemName = b.ItemName,
                ItemNo = b.ItemNo,
                ItemId = a.ItemId,
                DepotId = a.DepotId,
                WorkNo = a.WorkNo,
                DepotName = c.DepotName,
                Quantity = a.Quantity
            })
            .ToList();
        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,
            items = DS_list,
            Ysitems = YS_list
            // yisao = mesInvItemOutCDetailsList
        };
        return dto;
    }
    private ProductionPickDto getDaa001(WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.daa001)) throw new Exception("工单号为空");