啊鑫
2024-09-23 54445846644d77fb7a89f736f2c5bfe673ce3653
MES.Service/service/QC/RKJService.cs
@@ -54,13 +54,14 @@
    //获取工单号
    public List<RKJDaa001> GetDaa001s(string lineNo)
    public List<RkDaa002> GetDaa001s(string lineNo)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<RKJDaa001>()
            .Where(t => t.LineNo == lineNo)
            .OrderBy(t => t.BillNo, OrderByType.Desc)
            .ToList();
        // return db.Queryable<RKJDaa001>()
        //     .Where(t => t.LineNo == lineNo)
        //     .OrderBy(t => t.BillNo, OrderByType.Desc)
        //     .ToList();
        return null;
    }
    //根据检验标准来计算检验个数
@@ -105,31 +106,36 @@
            string LEV = null;
            switch (item.FcheckLevel)
            {
                case string s when s.Contains("S1"):
                case null:
                    LEV = ""; // 默认值
                    break;
                case { } s when s.Contains("S1"):
                    LEV = "B.FLEVEL_S1";
                    break;
                case string s when s.Contains("S2"):
                case { } s when s.Contains("S2"):
                    LEV = "B.FLEVEL_S2";
                    break;
                case string s when s.Contains("S3"):
                case { } s when s.Contains("S3"):
                    LEV = "B.FLEVEL_S3";
                    break;
                case string s when s.Contains("S4"):
                case { } s when s.Contains("S4"):
                    LEV = "B.FLEVEL_S4";
                    break;
                case string s when s.Contains("(I)"):
                case { } s when s.Contains("(I)"):
                    LEV = "B.FLEVEL_I";
                    break;
                case string s when s.Contains("(II)"):
                case { } s when s.Contains("(II)"):
                    LEV = "B.FLEVEL_II";
                    break;
                case string s when s.Contains("(III)"):
                case { } s when s.Contains("(III)"):
                    LEV = "B.FLEVEL_III";
                    break;
                default:
                    LEV = ""; // 默认值
                    break;
            }
            if (string.IsNullOrEmpty(LEV)) throw new Exception(item.QsCode+"下的检验水平维护的不正确");
            var sql =
                "SELECT " + LEV +
@@ -139,9 +145,13 @@
            var maxBillNo = db.Ado.SqlQuerySingle<string>(sql);
            if (string.IsNullOrEmpty(maxBillNo))
                throw new Exception(item.QsCode+"下没有" + quantity + "这个范围的抽样基准");
            var result = ExtractSubstring(item.FacLevel, '(', ')');
            if (string.IsNullOrEmpty(result))
                throw new Exception(item.QsCode+"维护的接收水平不正确,应该是0.010---(AQL_0_0010)这样");
            sql = "SELECT FSAMPLE_SIZE_WORD, " + result +
                  " Result FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO= '" +
@@ -401,9 +411,9 @@
                .ExecuteCommand();
        });
        if (FcheckResu.Equals("不合格"))
            //自动生成入库检异常对策
            saveDetect02(detail.Gid, detail.CreateBy);
        // if (FcheckResu.Equals("不合格"))
        //     //自动生成入库检异常对策
        //     saveDetect02(detail.Gid, detail.CreateBy);
        return useTransactionWithOracle;
    }
@@ -453,52 +463,60 @@
    }
    public List<QsItemOqcReq> getPage(XJPageResult queryObj)
    public (List<QsItemOqcReq> items, int TotalCount) getPage(
        XJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
        var id = Convert.ToDecimal(queryObj.id);
        var totalCount = 0;
        string[]? lineNo = null;
        if (StringUtil.IsNotNullOrEmpty(queryObj.createUser))
            lineNo = _baseService.getUserLineNo(queryObj.createUser);
        return db.Queryable<QsItemOqcReq, RKJDaa001>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.BillNo == b.BillNo))
            .WhereIF(lineNo != null && lineNo.Length > 0,
                (a, b) => lineNo.Contains(b.LineNo))
        var qsItemOqcReqs = db
            .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, MesInvTransaction,
                RKJDaa001, Womdaa>(
                (a, b, c, ca, m, da) => new JoinQueryInfos(
                    JoinType.Left, a.ItemNo == b.ItemNo,
                    JoinType.Left, a.BillNo == c.BillNo,
                    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,
                    JoinType.Left, da.Daa001 == c.RbillNo
                ))
            .WhereIF(!string.IsNullOrEmpty(queryObj.id),
                (a, b, c, ca, m, da) => a.Id.ToString() == queryObj.id)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                (a, b) => a.FcheckResu == null)
                (a, b, c, ca, m, da) => a.FcheckResu == null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                (a, b) => a.FcheckResu != null)
            .WhereIF(id > 0, (a, b) => a.Id == id)
            .Select((a, b) => new QsItemOqcReq
                (a, b, c, ca, m, da) => a.FcheckResu != null)
            .Select((a, b, c, ca, m, da) => new QsItemOqcReq
            {
                Id = a.Id,
                ReleaseNo = a.ReleaseNo,
                BillNo = a.BillNo,
                LineName = b.LineNo,
                Quantity = b.Quantity,
                CreateBy = a.CreateBy,
                Remarks = a.Remarks,
                Id = a.Id,
                CreateDate = a.CreateDate,
                ItemNo = a.ItemNo,
                Mocode = b.Mocode,
                BoardModel = b.BoardModel,
                TaskNo = b.TaskNo,
                CreateBy = a.CreateBy,
                FcheckResu = a.FcheckResu,
                ItemNo = a.ItemNo,
                FcheckBy = a.FcheckBy,
                FcheckDate = a.FcheckDate,
                MoidNum = a.MoidNum,
                BoardName = b.BoardName,
                ColorName = b.ColorName,
                Remarks = a.Remarks
            }).OrderBy(a => a.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
                ReleaseNo = a.ReleaseNo,
                ItemName = b.ItemName,
                ItemModel = b.ItemModel,
                Dab001 = m.LotNo,
                ItemInId = m.ItemInId,
                Daa015 = da.Daa015,
                LineNo = c.LineNo,
                Quantity = m.Quantity
            })
            .OrderBy(a => a.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        return (qsItemOqcReqs, totalCount);
    }
    //删除主表并且连级删除子表和孙表
@@ -561,6 +579,8 @@
    public int UpdateQSItemDetail(QsItemOqcItemDetail detail)
    {
        if (isRk(detail.ItemInId)) throw new Exception("已有条码入库,不允许修改检验结果");
        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            return db.Updateable<QsItemOqcItemDetail>()
@@ -581,6 +601,14 @@
        return withOracle;
    }
    //修改结果前验证是否入库
    private bool isRk(decimal? ItemInId)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<MesInvItemInCDetails>()
            .Where(s => s.ItemInId == ItemInId).Count() > 0;
    }
    //主表修改备注字段
    public int saveRemarksGid(RKJDto dto)