zjh
2025-07-18 8276722de62e0be1e68adf65f150686a236268bd
StandardPda/MES.Service/service/QC/RKJService.cs
@@ -76,29 +76,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 =>
        {
@@ -319,15 +318,10 @@
            .Where(o => o.Id == detail.Gid)
            .First();
        if (qsItemOqcReq == null)
        {
            throw new Exception("该检验单不存在,请回到入库检列表重新查看");
        }
        if (qsItemOqcReq == null) throw new Exception("该检验单不存在,请回到入库检列表重新查看");
        if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu))
        {
            throw new Exception("该检验单已" + qsItemOqcReq.FcheckResu + ",不运行修改结果");
        }
        var oracle = SqlSugarHelper.UseTransactionWithOracle(db =>
        {
@@ -382,8 +376,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>()
@@ -439,33 +433,32 @@
    }
    /// <summary>
    ///  当检验单不合格时,
    /// 取消mes_inv_item_barcodes 的报工标识 WORK_FLG
    /// womdaa 已生产量 DAA011加回条码报工数量
    /// MES_SCGD_GX 检验标识 CHECK_FLAG,('√','×')
    /// 通过mes_inv_item_in_c_details2的MES_SCGD_GX_ID连接
    ///</summary>
    ///     当检验单不合格时,
    ///     取消mes_inv_item_barcodes 的报工标识 WORK_FLG
    ///     womdaa 已生产量 DAA011加回条码报工数量
    ///     MES_SCGD_GX 检验标识 CHECK_FLAG,('√','×')
    ///     通过mes_inv_item_in_c_details2的MES_SCGD_GX_ID连接
    /// </summary>
    private void setBarCodes(string? FcheckResu, QsItemOqcItemDetail detail,
        SqlSugarClient db)
    {
        var oqcReqList = db.Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>(
                (a, b, c) =>
                    new JoinQueryInfos(
                        JoinType.Left, a.BillNo == b.BillNo,
                        JoinType.Left, c.Daa001 == b.RbillNo
                    ))
        var oqcReqList = db
            .Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>((a, b, c) =>
                new JoinQueryInfos(
                    JoinType.Left, a.BillNo == b.BillNo,
                    JoinType.Left, c.Daa001 == b.RbillNo
                ))
            .Where(a => a.Id == detail.Gid)
            .Select((a, b, c) =>
                new
                {
                    a.Id, a.BillNo, c.Daa001
                    a.Id,
                    a.BillNo,
                    c.Daa001
                })
            .ToList();
        if (oqcReqList.Count <= 0)
        {
            return;
        }
        if (oqcReqList.Count <= 0) return;
        var qsItemOqcReq = oqcReqList.First(); // 获取第一个元素  
@@ -499,7 +492,7 @@
                .ExecuteCommand();
            if (count <= 0) return;
            //取消mes_inv_item_barcodes 的报工标识 WORK_FLG 使用条码
            var executeCommand = db.Updateable<MesInvItemBarcodes>()
                .SetColumns(a => a.WorkFlg == 1)
@@ -507,13 +500,11 @@
                .ExecuteCommand();
            if (executeCommand > 0)
            {
                //womdaa 已生产量 DAA011加回条码报工数量
                db.Updateable<Womdaa>()
                    .SetColumns(b => b.Daa011 == b.Daa011 + sumQty)
                    .Where(b => b.Daa001 == qsItemOqcReq.Daa001)
                    .ExecuteCommand();
            }
        }
        else if ("不合格".Equals(FcheckResu))
        {
@@ -530,13 +521,11 @@
                .ExecuteCommand();
            if (executeCommand > 0)
            {
                //womdaa 已生产量 DAA011加回条码报工数量
                db.Updateable<Womdaa>()
                    .SetColumns(b => b.Daa011 == b.Daa011 - sumQty)
                    .Where(b => b.Daa001 == qsItemOqcReq.Daa001)
                    .ExecuteCommand();
            }
        }
    }
@@ -599,8 +588,8 @@
        var qsItemOqcReqs = db
            .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, MesInvTransaction,
                RKJDaa001, Womdaa, VLineUser>(
                (a, b, c, ca, m, da, z) => new JoinQueryInfos(
                RKJDaa001, Womdaa, VLineUser>((a, b, c, ca, m, da, z) =>
                new JoinQueryInfos(
                    JoinType.Left, a.ItemNo == b.ItemNo,
                    JoinType.Left, a.BillNo == c.BillNo,
                    JoinType.Left,
@@ -609,7 +598,7 @@
                    c.Factory == ca.Factory,
                    JoinType.Left, c.Id == m.ItemInId && a.ItemNo == m.ItemNo,
                    JoinType.Left, da.Daa001 == c.RbillNo,
                    JoinType.Left, da.Daa015 == z.LineNo//,
                    JoinType.Left, da.Daa015 == z.LineNo //,
                    //JoinType.Left,c.Bgr == d.UserNo
                ))
            // .WhereIF(lineNo != null && lineNo.Length > 0,
@@ -629,8 +618,11 @@
            //加筛选条件,根据供应商,物料编码,物料名称搜索
            //.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 != "",
            (a, b, c, ca, m, da, z) => b.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower())
            || a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                (a, b, c, ca, m, da, z) =>
                    b.ItemName.ToLower()
                        .Contains(queryObj.SearchValue.ToLower())
                    || a.ItemNo.ToLower()
                        .Contains(queryObj.SearchValue.ToLower()))
            .Select((a, b, c, ca, m, da, z) => new QsItemOqcReq
            {
                BillNo = a.BillNo,
@@ -650,7 +642,7 @@
                ItemInId = m.ItemInId,
                Daa015 = da.Daa015,
                LineNo = c.LineNo,
                Quantity = m.Quantity,
                Quantity = m.Quantity
                //Bgr = d.UserName
            })
            .OrderBy(a => a.CreateDate, OrderByType.Desc)
@@ -727,15 +719,10 @@
            .Where(o => o.Id == detail.Gid)
            .First();
        if (qsItemOqcReq == null)
        {
            throw new Exception("该检验单不存在,请回到入库检列表重新查看");
        }
        if (qsItemOqcReq == null) throw new Exception("该检验单不存在,请回到入库检列表重新查看");
        if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu))
        {
            throw new Exception("该检验单已" + qsItemOqcReq.FcheckResu + ",不运行修改结果");
        }
        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
        {
@@ -852,13 +839,14 @@
    private bool isRk(int? gid)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<QsItemOqcReq, MesInvItemIns, MesInvItemInCDetails2,MesInvItemStocks>(
                (a, b, c,d) => new JoinQueryInfos(
                    JoinType.Inner, a.BillNo == b.BillNo,
                    JoinType.Inner, b.Id == c.ItemInId,
                    JoinType.Inner,c.ItemBarcode == d.ItemBarcode
                ))
            .Where((a, b, c,d) => a.Id == gid)
        return db
            .Queryable<QsItemOqcReq, MesInvItemIns, MesInvItemInCDetails2,
                MesInvItemStocks>((a, b, c, d) => new JoinQueryInfos(
                JoinType.Inner, a.BillNo == b.BillNo,
                JoinType.Inner, b.Id == c.ItemInId,
                JoinType.Inner, c.ItemBarcode == d.ItemBarcode
            ))
            .Where((a, b, c, d) => a.Id == gid)
            .Count() > 0;
    }
}