啊鑫
17 小时以前 ed05efdc17aab076146b134ebe105b6382f221d7
MES.Service/service/QC/SJService.cs
@@ -1,8 +1,10 @@
using MES.Service.DB;
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;
@@ -34,9 +36,12 @@
    }
    //获取所有数据分页
    public List<SJPageResult> getPage(SJPageResult queryObj)
    public (List<SJPageResult> items, int TotalCount) getPage(
        SJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
        var totalCount = 0;
        string[]? lineNo = null;
@@ -57,10 +62,15 @@
                StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
                !"未完成".Equals(queryObj.Result),
                a => a.Result != "未完成")
            .WhereIF(queryObj.Comments != null,
                a => a.Comments == queryObj.Comments)
            .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.SearchValue), a =>
                a.BillNo.Contains(queryObj.SearchValue)
                || a.ItemNo.Contains(queryObj.SearchValue))
            .OrderBy(a => a.BillNo, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        return data;
        return (data, totalCount);
    }
@@ -103,8 +113,8 @@
        return db
            .Queryable<MesQualityStandard>()
            .Where(b => b.QsType == "1" && b.ItemNo == itemNo).Select(
                b => new QsItemIpiItem
            .Where(b => b.QsType == "1" && b.ItemNo == itemNo).Select(b =>
                new QsItemIpiItem
                {
                    ProjName = b.ProjName,
                    ItemMod = b.ItemMod,
@@ -188,21 +198,20 @@
    {
        var qsItemIpiReq = item.From;
        var qsItemIpiItems = item.Items;
        SqlSugarHelper.UseTransactionWithOracle(
            db =>
            {
                qsItemIpiReq.StatusDate = DateTime.Now;
                var pid = db.Insertable(qsItemIpiReq)
                    .ExecuteReturnIdentity();
                qsItemIpiReq.Id = pid;
        SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            qsItemIpiReq.StatusDate = DateTime.Now;
            var pid = db.Insertable(qsItemIpiReq)
                .ExecuteReturnIdentity();
            qsItemIpiReq.Id = pid;
                item.gid = pid;
            item.gid = pid;
                qsItemIpiItems.ForEach(s => s.Pid = pid);
            qsItemIpiItems.ForEach(s => s.Pid = pid);
                return db.Insertable(qsItemIpiItems)
                    .ExecuteCommand();
            });
            return db.Insertable(qsItemIpiItems)
                .ExecuteCommand();
        });
        item.Items = getQSItems(qsItemIpiReq.Id, null);
        //没有上下限的检验项目自动盘点为合格
@@ -223,7 +232,7 @@
        item.Items = getQSItems(qsItemIpiReq.Id, null);
        var sjPageResult = new SJPageResult
            { Id = item.From.Id, Limit = 1, PageIndex = 1 };
        item.Result = getPage(sjPageResult)[0];
        item.Result = getPage(sjPageResult).items[0];
        return item;
    }
@@ -231,14 +240,13 @@
    public QsItem SaveItem(QsItem item)
    {
        var qsItemIpiItems = item.Items;
        SqlSugarHelper.UseTransactionWithOracle(
            db =>
            {
                qsItemIpiItems.ForEach(s => s.Pid = item.gid);
        SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            qsItemIpiItems.ForEach(s => s.Pid = item.gid);
                return db.Insertable(qsItemIpiItems)
                    .ExecuteCommand();
            });
            return db.Insertable(qsItemIpiItems)
                .ExecuteCommand();
        });
        item.Items = getQSItems(item.gid, null);
        //没有上下限的检验项目自动盘点为合格
@@ -322,8 +330,8 @@
        if (count == passCount) result = 1;
        var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
            db =>
        var useTransactionWithOracle =
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
                var commit = 0;
                commit += db.Updateable<QsItemIpiItem>()
@@ -358,8 +366,8 @@
            //合格的检验结果等于总检验数视为合格
            if (icount == passCount) result = 1;
            useTransactionWithOracle += SqlSugarHelper.UseTransactionWithOracle(
                db =>
            useTransactionWithOracle +=
                SqlSugarHelper.UseTransactionWithOracle(db =>
                {
                    return db.Updateable<QsItemIpiReq>()
                        .SetColumns(s => s.IsPass == result)
@@ -404,6 +412,19 @@
            return db.Updateable<QsItemIpiReq>()
                .SetColumns(it =>
                    it.Remarks == dto.Remarks) //SetColumns是可以叠加的 写2个就2个字段赋值
                .Where(it => it.Id == dto.gid)
                .ExecuteCommand();
        });
    }
    //主表修改备注字段1
    public int saveCommentGid(QsItem dto)
    {
        return SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            return db.Updateable<QsItemIpiReq>()
                .SetColumns(it =>
                    it.Comments == dto.Comments) //SetColumns是可以叠加的 写2个就2个字段赋值
                .Where(it => it.Id == dto.gid)
                .ExecuteCommand();
        });
@@ -455,4 +476,50 @@
        return withOracle;
    }
    public bool SJQaSubmit(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_SJ_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);
        }
    }
}