zyf
2025-04-12 b2be3b6939b4382f9165c78857a072f1aa7b01d0
MES.Service/service/WomdaaManager.cs
@@ -1,25 +1,70 @@
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service;
public class WomdaaManager : Repository<Womdaa>
{
    //当前类已经继承了 Repository 增、删、查、改的方法
    //这里面写的代码不会给覆盖,如果要重新生成请删除 WomdaaManager.cs
    public int TestUpdate(Womdaa womdaa)
    //获取工单号
    public List<string> GetProductionPickDaa001(WarehouseQuery query)
    {
        return UseTransaction(db =>
        {
            return db.Updateable<Womdaa>()
                .SetColumns(a => a.Daa001 == womdaa.Daa001)
                .SetColumns(a => a.Daa002 == womdaa.Daa002)
                .SetColumns(a => a.Daa003 == womdaa.Daa003)
                .SetColumns(a => a.Daa004 == womdaa.Daa004)
                .Where(a => a.Id == womdaa.Id)
                .ExecuteCommand();
        });
        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 '%" +
            query.daa001 +
            "%' and DAA018 != '完工' AND DAA022 = 1 AND UN_NUM > 0 AND ROWNUM <= 10 order by a.id desc";
        return Db.Ado.SqlQuery<string>(sql);
    }
    //这里面写的代码不会给覆盖,如果要重新生成请删除 WomdaaManager.cs
    //根据工单号返回产品型号和待领物料
    public ProductionPickDto GetItemsByDaa001(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)
            .Select((a, i) => new
            {
                i.ItemModel
            }).First();
        if (womdaa?.ItemModel == null) throw new Exception("工单号不存在");
        var dto = new ProductionPickDto
        {
            ItemModel = womdaa.ItemModel
        };
        var womdabs = Db.Queryable<Womdaa, Womdab, MesItems>((a, b, c) =>
                new JoinQueryInfos(
                    JoinType.Left,
                    a.Id == b.Pid, // LEFT JOIN WOMDAB B ON A.ID = B.PID
                    JoinType.Inner,
                    c.Id.ToString() ==
                    b.Dab003 // INNER JOIN MES_ITEMS C ON C.ID = B.DAB003
                ))
            .Where((a, b, c) =>
                a.Daa001 == query.daa001) // WHERE DAA001 = 'SCDD003681-1'
            .Select((a, b, c) => 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();
        dto.Womdabs = womdabs;
        return dto;
    }
}