zyf
2025-04-23 54c83d07d8317692b73f3af84d8df504812c3275
MES.Service/service/QC/XJService.cs
@@ -13,7 +13,7 @@
    private readonly BaseService _baseService = new();
    private readonly string[] statusArray = ["生产", "待产"];
    private readonly string[] statusArray = ["开工", "待开工"];
    //生成最新的检验单号
    public string getMaxReleaseNo()
@@ -38,35 +38,16 @@
        return "XJN" + date + number;
    }
    public List<MesSchemeResult> getItem(string daa001)
    public List<Womdaa> getItem(string daa001)
    {
        var db = SqlSugarHelper.GetInstance();
        //in的写法 https://www.donet5.com/Home/Doc?typeId=1187
        return db.Queryable<MesSchemeResult, MesDepTask, MesBoardBaseInfo>(
                (a, c, b) =>
                    new JoinQueryInfos(
                        JoinType.Left, a.TaskNo == c.TaskNo,
                        JoinType.Left, c.BoardItem == b.BoardItem
                    )
            )
            .Where(a => a.PmoveMk == 0 &&
                        a.BillNo == daa001 &&
                        statusArray.Contains(a.ProcStatus))
            .Select((a, c, b) => new MesSchemeResult
            {
                BillNo = a.BillNo,
                CatQty = a.CatQty,
                DetailMem = a.DetailMem,
                TaskNo = a.TaskNo,
                BoardItem = a.BoardItem,
                BoardModel = b.BoardModel,
                PlanQty = c.PlanQty,
                Mocode = a.Mocode,
                // BoardStyle = c.BoardStyle,
                Id = a.Id
            })
        return db.Queryable<Womdaa>()
            .Where(a =>
                a.Daa001 == daa001 &&
                statusArray.Contains(a.Daa018))
            .ToList();
    }
@@ -74,50 +55,55 @@
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesSchemeResult, MesLine>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.LineNo == b.LineNo))
            .Where((a, b) => a.PmoveMk == 0 && b.LineName != null &&
                             statusArray.Contains(a.ProcStatus))
            .Where("BOARD_ITEM like @BoardItem", new { BoardItem = "20%" })
        return db.Queryable<Womdaa, MesLine>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.Daa015 == b.LineNo))
            .Where((a, b) => b.LineName != null &&
                             statusArray.Contains(a.Daa018))
            .GroupBy((a, b) => new
            {
                a.LineNo, b.LineName
                b.LineNo, b.LineName
            })
            .Select((a, b) => new MesLine
            {
                LineNo = a.LineNo,
                LineNo = b.LineNo,
                LineName = b.LineName
            }).OrderBy("a.LINE_NO").ToList();
            }).OrderBy("b.LINE_NO").ToList();
    }
    public List<MesSchemeResult> getDaa001(string daa020, string item)
    public List<Womdaa> getDaa001(string daa020, string item)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesSchemeResult>().Where(a =>
                a.PmoveMk == 0 && a.LineNo == daa020 && a.BillNo != null &&
                a.BoardItem == item &&
                statusArray.Contains(a.ProcStatus))
            .Select<MesSchemeResult>(a => new MesSchemeResult
        return db.Queryable<Womdaa, MesItems>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString()))
            .Where((a, b) =>
                a.Daa015 == daa020 &&
                b.ItemNo == item &&
                statusArray.Contains(a.Daa018))
            .Select<Womdaa>(a => new Womdaa
            {
                BillNo = a.BillNo,
                DetailMem = a.DetailMem
                Id = a.Id,
                Daa001 = a.Daa001,
                Daa003 = a.Daa003,
                Daa008 = a.Daa008
            }).ToList();
    }
    public List<MesSchemeResult> getBoardItem(string lineNo)
    public List<MesItems> getBoardItem(string lineNo)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesSchemeResult>()
            .Where(a =>
                a.PmoveMk == 0 && statusArray.Contains(a.ProcStatus) &&
                a.LineNo == lineNo)
            .Where("BOARD_ITEM like @BoardItem", new { BoardItem = "20%" })
            .Select<MesSchemeResult>(a =>
                new MesSchemeResult
        return db.Queryable<Womdaa, MesItems>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString()))
            .Where((a, b) => statusArray.Contains(a.Daa018) &&
                             a.Daa015 == lineNo)
            .OrderBy((a, b) => b.ItemName)
            .Select<MesItems>((a, b) =>
                new MesItems
                {
                    BoardItem = a.BoardItem,
                    DetailMem = a.DetailMem
                }).OrderBy(a => a.BoardItem).ToList();
                    Id = b.Id,
                    ItemNo = b.ItemNo,
                    ItemName = b.ItemName,
                    ItemModel = b.ItemModel
                }).ToList();
    }
    public List<QsQaItemXj> getPage(XJPageResult queryObj)
@@ -132,57 +118,67 @@
            lineNo = _baseService.getUserLineNo(queryObj.createUser);
        return db
            .Queryable<QsQaItemXj, MesSchemeResult, MesDepTask,
                MesBoardBaseInfo>((s, a, c, b) =>
            .Queryable<QsQaItemXj, Womdaa, MesLine,
                MesItems,Womcaa, ExZzCaaFiled>((s, a, c, b,ca,zf) =>
                new JoinQueryInfos(
                    JoinType.Inner, s.BillNo == a.BillNo,
                    JoinType.Left, a.TaskNo == c.TaskNo,
                    JoinType.Left, c.BoardItem == b.BoardItem
                    JoinType.Inner, s.BillNo == a.Daa001,
                    JoinType.Left, a.Daa015 == c.LineNo,
                    JoinType.Left, s.ItemId == b.Id,
                    JoinType.Left, a.Daa021 == ca.Caa020,
                    JoinType.Left, ca.Erpid == zf.Erpid
                )
            )
            .WhereIF(lineNo != null && lineNo.Length > 0,
                (s, a, c, b) => lineNo.Contains(a.LineNo))
                (s, a, c, b, ca, zf) => lineNo.Contains(c.LineNo))
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                (s, a, c, b) => s.FcheckResu == null)
                (s, a, c, b, ca, zf) => s.FcheckResu == null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                (s, a, c, b) => s.FcheckResu != null)
            .WhereIF(id > 0, (s, a, c, b) => s.Id == id)
            .Select((s, a, c, b) => new QsQaItemXj
                (s, a, c, b, ca, zf) => s.FcheckResu != null)
            .WhereIF(id > 0, (s, a, c, b, ca, zf) => s.Id == id)
            //加筛选条件,根据供应商,物料编码,物料名称搜索
            //.WhereIF(queryObj.SearchValue!=null && queryObj.SearchValue!="", (a) => a.SuppName == queryObj.SearchValue|| a.ItemName == queryObj.SearchValue || a.ItemNo == queryObj.SearchValue )
            .WhereIF(queryObj.SearchValue != null && queryObj.SearchValue != "",
            (s, a, c, b, ca, zf) => (b.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower())
            || b.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower())))
            .Select((s, a, c, b, ca, zf) => new QsQaItemXj
            {
                CatQty = a.CatQty,
                MoidNum = s.MoidNum,
                Daa020 = a.LineNo,
                // DetailMem = a.DetailMem,
                TaskNo = a.TaskNo,
                Daa020 = c.LineNo,
                Id = s.Id,
                PlanQty = a.Daa008,
                CreateBy = s.CreateBy,
                CreateDate = s.CreateDate,
                ReleaseNo = s.ReleaseNo,
                ItemNo = s.ItemNo,
                ItemUnit = s.ItemUnit,
                BillNo = s.BillNo,
                ItemName = b.ItemName,
                ItemModel = b.ItemModel,
                FcheckBy = s.FcheckBy,
                FcheckResu = s.FcheckResu,
                Remarks = s.Remarks,
                BoardModel = b.BoardModel,
                PlanQty = c.PlanQty
                // Mocode = a.Mocode,
                // BoardStyle = c.BoardStyle
                Caa015 = ca.Caa015,
                cust = a.Cust == null ? zf.Cust : a.Cust,
                Remarks = s.Remarks
            }).OrderBy(s => s.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
    }
    public List<QsQaItemXj01> setJYItem(string itemNo)
    public List<QsQaItemXj01> setJYItem(string itemNo, string lineNo)
    {
        var db = SqlSugarHelper.GetInstance();
        //根据线体编号获取工序ID
        decimal? procid = db.Queryable<MesLine>().Where(s => s.LineNo == lineNo).Select(s => s.ProcId).First();
        if (procid == null) { procid = 99999999; };
        var count = db.Queryable<MesQa>().Where(s => s.QsType == "2"
            && s.ItemNo == itemNo && s.Fsubmit == 1).Count();
            && s.ItemNo == itemNo && s.Fsubmit == 1 && s.procid == procid).Count();
        if (count <= 0) return new List<QsQaItemXj01>();