啊鑫
2025-07-29 c53a461aef16902ca78cdb7bd0c62305e2fee809
MES.Service/service/QC/XJService.cs
@@ -1,9 +1,10 @@
using DnsClient.Protocol;
using System.Data;
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
using DbType = System.Data.DbType;
namespace MES.Service.service.QC;
@@ -45,11 +46,10 @@
        //in的写法 https://www.donet5.com/Home/Doc?typeId=1187
        return db.Queryable<Womdaa, MesItems>(
                (a, c) =>
                    new JoinQueryInfos(
                        JoinType.Left, a.Daa002 == c.Id.ToString() ))
            .Where(a => a.Daa001 == daa001 )
        return db.Queryable<Womdaa, MesItems>((a, c) =>
                new JoinQueryInfos(
                    JoinType.Left, a.Daa002 == c.Id.ToString()))
            .Where(a => a.Daa001 == daa001)
            .Select((a, c) => new Womdaa
            {
                Daa001 = a.Daa001,
@@ -72,7 +72,7 @@
        return db.Queryable<Womdaa, MesLine>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.Daa015 == b.LineNo))
           .GroupBy((a, b) => new
            .GroupBy((a, b) => new
            {
                a.Daa015, b.LineName
            })
@@ -87,12 +87,12 @@
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<Womdaa>().Where(a =>
                a.Daa015 == daa020 &&
                a.Daa002 == item )
                a.Daa015 == daa020 &&
                a.Daa002 == item)
            .Select<Womdaa>(a => new Womdaa
            {
                Daa001 = a.Daa001,
               // DetailMem = a.DetailMem
                Daa001 = a.Daa001
                // DetailMem = a.DetailMem
            }).ToList();
    }
@@ -102,7 +102,7 @@
        return db.Queryable<Womdaa>()
            .Where(a =>
                a.Daa015 == lineNo)
           .Select<Womdaa>(a =>
            .Select<Womdaa>(a =>
                new Womdaa
                {
                    Daa002 = a.Daa002,
@@ -111,6 +111,63 @@
                }).OrderBy(a => a.Daa002).ToList();
    }
    public List<QsQaItemXj> getPage(XJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
        var id = Convert.ToDecimal(queryObj.id);
        string[]? lineNo = null;
        if (StringUtil.IsNotNullOrEmpty(queryObj.createUser))
            lineNo = _baseService.getUserLineNo(queryObj.createUser);
        return db
            .Queryable<QsQaItemXj, Womdaa>((s, a) =>
                new JoinQueryInfos(
                    JoinType.Inner, s.BillNo == a.Daa001
                )
            )
            .WhereIF(lineNo != null && lineNo.Length > 0,
                (s, a) => lineNo.Contains(a.Daa015))
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                (s, a) => s.FcheckResu == null || s.Fsubmit == null ||
                          s.Fsubmit == 0)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                (s, a) => s.FcheckResu != null && s.Fsubmit != null &&
                          s.Fsubmit != 0)
            .WhereIF(id > 0, (s, a) => s.Id == id)
            .Select((s, a) => new QsQaItemXj
            {
                CatQty = a.Daa008,
                MoidNum = s.MoidNum,
                Daa020 = a.Daa015,
                // DetailMem = a.DetailMem,
                TaskNo = a.Daa001,
                Id = s.Id,
                CreateBy = s.CreateBy,
                CreateDate = s.CreateDate,
                ReleaseNo = s.ReleaseNo,
                ItemNo = s.ItemNo,
                ItemUnit = s.ItemUnit,
                BillNo = s.BillNo,
                FcheckBy = s.FcheckBy,
                FcheckResu = s.FcheckResu,
                Remarks = s.Remarks,
                PlanQty = a.Daa008, // 工单数量
                ItemModel = a.Daa004, // 规格
                ItemName = a.Daa003, // 产品名称
                ItemId = a.Daa002 // 产品名称
                // Fsubmit = s.Fsubmit // 若需要返回 Fsubmit 字段
            })
            .OrderBy(s => s.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
    }
    /*
    public List<QsQaItemXj> getPage(XJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
@@ -156,7 +213,7 @@
                FcheckBy = s.FcheckBy,
                FcheckResu = s.FcheckResu,
                Remarks = s.Remarks,
                PlanQty = a.Daa008,//工单数量
                ItemModel = a.Daa004,//规格
                ItemName = a.Daa003,//产品名称
@@ -164,6 +221,7 @@
            }).OrderBy(s => s.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
    }
    */
    public List<QsQaItemXj01> setJYItem(decimal itemId)
@@ -171,36 +229,37 @@
        var db = SqlSugarHelper.GetInstance();
        var count = db.Queryable<MesQa>().Where(s => s.QsType == "2"
                                                     && s.ItemId == itemId && s.Fsubmit == 1).Count();
            && s.ItemId == itemId && s.Fsubmit == 1).Count();
        if (count <= 0) return new List<QsQaItemXj01>();
        return db
            .Queryable<MesQualityStandard>()
            .Where(b => b.QsType == "2"
                        && b.ItemId == itemId).Select(
                b => new QsQaItemXj01
                {
                    ProjName = b.ProjName,
                    ItemMod = b.ItemMod,
                    InspectionMethod = b.InspectionMethod,
                    UsingInstruments = b.UsingInstruments,
                    LevelNum = SqlFunc.IsNull(
                        SqlFunc.IsNull( Convert.ToDecimal(b.LevelNum) * Convert.ToDecimal(b.InspectionLevel) , 1),
                        Convert.ToDecimal(b.InspectionLevel)),
                    MaxValue = Convert.ToDecimal(b.MaxValue),
                    StandardValue = Convert.ToDecimal(b.StandardValue),
                    MinValue = Convert.ToDecimal(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.ItemId == itemId).Select(b => new QsQaItemXj01
            {
                ProjName = b.ProjName,
                ItemMod = b.ItemMod,
                InspectionMethod = b.InspectionMethod,
                UsingInstruments = b.UsingInstruments,
                LevelNum = SqlFunc.IsNull(
                    SqlFunc.IsNull(
                        Convert.ToDecimal(b.LevelNum) *
                        Convert.ToDecimal(b.InspectionLevel), 1),
                    Convert.ToDecimal(b.InspectionLevel)),
                MaxValue = Convert.ToDecimal(b.MaxValue),
                StandardValue = Convert.ToDecimal(b.StandardValue),
                MinValue = Convert.ToDecimal(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();
    }
    public List<QsQaItemXj01> getJYItem(decimal? pid, decimal? id)
@@ -407,8 +466,8 @@
        if (count == passCount) result = 1;
        var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
            db =>
        var useTransactionWithOracle =
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
                var commit = 0;
                commit += db.Updateable<QsQaItemXj01>()
@@ -537,4 +596,67 @@
                .ExecuteCommand();
        });
    }
    public bool XJQaSubmit(QsItem item)
    {
        var (factory, company) = UserUtil.GetFactory(item.userNo);
        try
        {
            // 定义输出参数
            var outputResult = new SugarParameter("o_Result", null,
                DbType.Int32, ParameterDirection.Output,
                4000);
            var outputMessage = new SugarParameter("o_Msg", null, DbType.String,
                ParameterDirection.Output, 4000);
            // 定义输入参数
            var parameters = new List<SugarParameter>
            {
                new("p_Id", item.gid, DbType.Int32, ParameterDirection.Input),
                new("p_Flag", 1, DbType.Int32, ParameterDirection.Input),
                new("p_User", item.userNo, DbType.String,
                    ParameterDirection.Input),
                outputResult,
                outputMessage
            };
            var db = SqlSugarHelper.GetInstance();
            // 使用 SqlSugar 执行存储过程
            db.Ado.ExecuteCommand(
                "BEGIN PRC_WOMDAA_XJ_UPDATE_RES(:p_Id,:p_Flag,:p_User,:o_Result, :o_Msg); END;",
                parameters.ToArray());
            // 获取输出参数的值
            var resultValue = outputResult.Value?.ToString();
            var messageValue = outputMessage.Value?.ToString();
            if ("1".Equals(resultValue)) throw new Exception(messageValue);
            if ("0".Equals(resultValue)) throw new Exception(messageValue);
            return true;
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
    public List<MesLine> getWorkshop()
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<Womdaa, MesLine>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.Daa015 == b.LineNo))
            .GroupBy((a, b) => new
            {
                a.Daa015, b.LineName
            })
            .Select((a, b) => new MesLine
            {
                LineNo = a.Daa015,
                LineName = b.LineName
            }).OrderBy("a.Daa015").ToList();
    }
}