啊鑫
21 小时以前 ed05efdc17aab076146b134ebe105b6382f221d7
MES.Service/service/QC/RKJService.cs
@@ -73,29 +73,28 @@
        var qsItemOqcItems = db
            .Queryable<MesQualityStandard>()
            .Where(b => b.QsType == "3"
                        && b.ItemNo == itemNo).Select(
                b => new QsItemOqcItem
                {
                    ProjName = b.ProjName,
                    ItemMod = b.ItemMod,
                    InspectionMethod = b.InspectionMethod,
                    UsingInstruments = b.UsingInstruments,
                    LevelNum = SqlFunc.IsNull(
                        SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
                        b.InspectionLevel),
                    MaxValue = b.MaxValue,
                    StandardValue = b.StandardValue,
                    MinValue = b.MinValue,
                    Notes = b.Notes,
                    FcheckLevel = b.FcheckLevel,
                    FacLevel = b.FacLevel,
                    QsCode = b.QsCode,
                    QsName = b.QsName,
                    Result = "未检测",
                    isCheck = 0,
                    Picture = b.Picture,
                    Picturename = b.Picturename
                }).ToList();
                        && b.ItemNo == itemNo).Select(b => new QsItemOqcItem
            {
                ProjName = b.ProjName,
                ItemMod = b.ItemMod,
                InspectionMethod = b.InspectionMethod,
                UsingInstruments = b.UsingInstruments,
                LevelNum = SqlFunc.IsNull(
                    SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
                    b.InspectionLevel),
                MaxValue = b.MaxValue,
                StandardValue = b.StandardValue,
                MinValue = b.MinValue,
                Notes = b.Notes,
                FcheckLevel = b.FcheckLevel,
                FacLevel = b.FacLevel,
                QsCode = b.QsCode,
                QsName = b.QsName,
                Result = "未检测",
                isCheck = 0,
                Picture = b.Picture,
                Picturename = b.Picturename
            }).ToList();
        qsItemOqcItems.ForEach(item =>
        {
@@ -226,10 +225,17 @@
        {
            var commit = 0;
            xj.CreateBy = userNo;
            xj.CreateDate = DateTime.Now;
            // xj.CreateBy = userNo;
            // xj.CreateDate = DateTime.Now;
            var pid = db.Insertable(xj).ExecuteReturnIdentity();
            var qsItemOqcReq = db.Queryable<QsItemOqcReq>()
                .Where(s => s.Id == xj.Id)
                .First();
            decimal? pid = 0;
            pid = qsItemOqcReq == null
                ? db.Insertable(xj).ExecuteReturnIdentity()
                : qsItemOqcReq.Id;
            xj.Id = pid;
@@ -351,8 +357,8 @@
            result = 1;
        else if (count - passCount < QsItemOqcItem.FreQty) result = 1;
        var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
            db =>
        var useTransactionWithOracle =
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
                var commit = 0;
                commit += db.Updateable<QsItemOqcItem>()
@@ -398,9 +404,24 @@
                .ExecuteCommand();
        });
        if (FcheckResu.Equals("不合格"))
            //自动生成入库检异常对策
            saveDetect02(detail.Gid, detail.CreateBy);
        //if (FcheckResu.Equals("不合格"))
        //    //自动生成入库检异常对策
        //    saveDetect02(detail.Gid, detail.CreateBy);
        var oqcReq = db.Queryable<QsItemOqcReq>()
            .Where(s => s.Id == detail.Gid)
            .Select<string?>(s => s.BillNo)
            .First();
        if (oqcReq != null)
            //FSTATUS
            //CHECK_RES
            db.Updateable<MesInvItemIns>()
                .SetColumns(s => s.Fstatus == 1)
                .SetColumns(s => s.CheckRes == FcheckResu)
                .Where(s => s.BillNo == oqcReq)
                .ExecuteCommand();
        return useTransactionWithOracle;
    }
@@ -450,24 +471,45 @@
    }
    public List<QsItemOqcReq> getPage(XJPageResult queryObj)
    public (List<QsItemOqcReq> items, int TotalCount) getPage(
        XJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
        return db
            .Queryable<QsItemOqcReq, Womdaa, MesItems, MesInvItemIns, Womdab,
                MesInvTransaction, RKJDaa001>(
                (a, da, b, c, d, ca, m) => new JoinQueryInfos(
                    JoinType.Left, da.Daa001 == a.BillNo,
                    JoinType.Left, a.ItemId == b.Id,
                    JoinType.Left, a.BillNo == c.BillNo,
                    JoinType.Left, c.CbillNo == d.Dab001,
                    JoinType.Left,
                    c.TransctionNo == ca.TransactionNo.ToString() &&
                    c.Company == ca.Company && c.Factory == ca.Factory,
                    JoinType.Left, c.Id == m.ItemInId && a.ItemNo == m.ItemNo
                ))
            .Select((a, da, b, c, d, ca, m) => new QsItemOqcReq
        var totalCount = 0;
        var qsItemOqcReqs = db
            .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, Womdaa,
                MesInvTransaction, RKJDaa001,
                MesLine>((a, b, c, da, ca, m, l) => new JoinQueryInfos(
                JoinType.Left, a.ItemNo == b.Id.ToString(),
                JoinType.Left, a.BillNo == c.BillNo,
                JoinType.Left, da.Daa001 == c.RbillNo,
                JoinType.Left, c.TransctionNo == ca.TransactionNo.ToString()
                               && c.Company == ca.Company
                               && c.Factory == ca.Factory,
                JoinType.Left, m.ItemInId == c.Id,
                JoinType.Left, l.LineNo == da.Daa015
            ))
            //.WhereIF(!"PL017".Equals(queryObj.createUser),
            //    (a, b, c, da, ca, m) => lineNo.Contains(da.Daa015))
            .WhereIF(!string.IsNullOrEmpty(queryObj.id),
                (a, b, c, da, ca, m, l) => a.Id.ToString() == queryObj.id)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                (a, b, c, da, ca, m, l) => a.FcheckResu == null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                (a, b, c, da, ca, m, l) => a.FcheckResu != null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.SearchValue),
                (a, b, c, da, ca, m, l) =>
                    a.ReleaseNo.Contains(queryObj.SearchValue)
                    || b.ItemNo.Contains(queryObj.SearchValue)
            )
            .Select((a, b, c, da, ca, m, l) => new QsItemOqcReq
            {
                BillNo = a.BillNo,
                Remarks = a.Remarks,
@@ -475,23 +517,22 @@
                CreateDate = a.CreateDate,
                CreateBy = a.CreateBy,
                FcheckResu = a.FcheckResu,
                ItemNo = a.ItemNo,
                ItemNo = b.ItemNo,
                FcheckBy = a.FcheckBy,
                FcheckDate = a.FcheckDate,
                ReleaseNo = a.ReleaseNo,
                // 添加其他字段
                // 如果在 QsItemOqcReq 中定义了额外字段,则需要将它们赋值
                // 例如:
                ItemName = b.ItemName,
                ItemModel = b.ItemModel,
                TaskNo = c.TaskNo,
                CbillNo = c.CbillNo,
                Dab001 = d.Dab001,
                Daa015 = da.Daa015,
                LineNo = c.LineNo,
                TaskNo = c.RbillNo,
                //CbillNo = c.CbillNo,
                //LineNo = da.Daa015,
                LineNo = l.LineName,
                Quantity = m.Quantity
            }).OrderBy(a => a.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
            })
            .OrderBy(a => a.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        return (qsItemOqcReqs, totalCount);
    }
    //删除主表并且连级删除子表和孙表
@@ -644,4 +685,28 @@
        return Convert.ToInt32(rkjDto.gid);
    }
    public List<MesInvItemInCDetails2> GetRKDetail(RKJDto rkjDto)
    {
        //物料条码和物料编码,数量   MES_INV_ITEM_IN_C_DETAILS2
        var db = SqlSugarHelper.GetInstance();
        var oqcReq = db.Queryable<QsItemOqcReq>()
            .Where(s => s.Id == rkjDto.gid)
            .Select<string?>(s => s.BillNo)
            .First();
        if (oqcReq != null)
        {
            //FSTATUS
            //CHECK_RES
            var mesInvItemIns = db.Queryable<MesInvItemIns>()
                .Where(s => s.BillNo == oqcReq).First();
            return db.Queryable<MesInvItemInCDetails2>()
                .Where(a => a.ItemInId == mesInvItemIns.Id).ToList();
        }
        return new List<MesInvItemInCDetails2>();
    }
}