fcx
2 天以前 38260f9d8bba59567844f19c5ce60576ce04a923
StandardPda/MES.Service/service/QC/XJService.cs
@@ -4,6 +4,8 @@
using MES.Service.util;
using SqlSugar;
using System.Data;
using System.Dynamic;
using DbType = System.Data.DbType;
namespace MES.Service.service.QC;
@@ -14,7 +16,7 @@
    private readonly BaseService _baseService = new();
    private readonly string[] statusArray = ["开工", "待开工"];
    private readonly string[] statusArray = ["已开工", "待开工"];
    //生成最新的检验单号
    public string getMaxReleaseNo()
@@ -87,7 +89,7 @@
                Daa001 = a.Daa001,
                Daa003 = a.Daa003,
                Daa008 = a.Daa008
            }).ToList();
            }).Distinct().ToList();
    }
    public List<MesItems> getBoardItem(string lineNo)
@@ -105,7 +107,7 @@
                    ItemNo = b.ItemNo,
                    ItemName = b.ItemName,
                    ItemModel = b.ItemModel
                }).ToList();
                }).Distinct().ToList();
    }
    //public (List<QsQaItemXj> item, int TotalCount) getPage(XJPageResult queryObj)
@@ -174,40 +176,45 @@
        var totalCount = 0;
        var pageList = db
            .Queryable<QsQaItemXj, Womdaa, MesItems>((s, a, b) =>
            .Queryable<QsQaItemXj, Womdaa, MesItems, Womcaa, MES_PROJECT>((s, a, b,c,d) =>
                new JoinQueryInfos(
                    JoinType.Inner, s.BillNo == a.Daa001,
                    JoinType.Left, s.ItemId == b.Id
                    JoinType.Left, s.ItemId == b.Id,
                    JoinType.Left,a.Daa021 == c.Caa001,
                    JoinType.Left ,d.Id == c.Project
                )
            )
            // ⭐ 模糊搜索(BillNo 或 ItemNo 新增
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.SearchValue),
                (s, a, b) =>
                (s, a, b,c,d) =>
                    s.BillNo.Contains(queryObj.SearchValue) ||
                    s.ItemNo.Contains(queryObj.SearchValue)
                    s.ItemNo.Contains(queryObj.SearchValue) ||
                    b.ItemName.Contains(queryObj.SearchValue)||
                    a.Daa020.Contains(queryObj.SearchValue)||
                    d.PROJECT_CODE.Contains(queryObj.SearchValue)
            )
            // ⭐ 状态筛选:未完成
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                (s, a, b) => s.Fsubmit == null || s.Fsubmit == 0
                (s, a, b,c,d) => s.Fsubmit == null || s.Fsubmit == 0
            )
            // ⭐ 状态筛选:已完成
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                (s, a, b) => s.Fsubmit == 1
                (s, a, b,c,d) => s.Fsubmit == 1
            )
            // ⭐ ID 查询(单条)
            .WhereIF(id > 0, (s, a, b) => s.Id == id)
            .WhereIF(id > 0, (s, a, b,c,d) => s.Id == id)
            // ⭐ select 实体返回
            .Select((s, a, b) => new QsQaItemXj
            .Select((s, a, b,c,d) => new QsQaItemXj
            {
                Id = s.Id,
                ReleaseNo = s.ReleaseNo,
@@ -232,7 +239,9 @@
                // ⭐ 额外字段(来自连表)
                PlanQty = a.Daa008,
                ItemName = b.ItemName,
                ItemModel = b.ItemModel
                ItemModel = b.ItemModel,
                DAA020 = a.Daa020,
                PROJECT_CODE = d.PROJECT_CODE
            })
            .OrderBy(s => s.CreateDate, OrderByType.Desc)
@@ -387,6 +396,16 @@
            var sqlPass3 = $@"select ID from  QS_QA_ITEM_XJ
    WHERE ID = '{rkjDto.gid}'
    ";
            var dtPass3 = SQLHelper.ExecuteQuery(sqlPass3);
            var value4 = dtPass3.Rows[0][0];
            int sqlPass2 = Convert.ToInt32(value4);
            if (dt.Rows.Count > 0)
            {
                var resu = dt.Rows[0]["FCHECK_RESU"]?.ToString();
@@ -399,6 +418,65 @@
          where ID = '" + rkjDto.gid + "'";
                SQLHelper.ExecuteNonQuery(sqlUpdate);
            }
        //    var resu1 = dt.Rows[0]["FCHECK_RESU"]?.ToString();
        //    var fsubmit2 = resu1 == "合格" ? 1 : 0;
        //    if (fsubmit2 == 0)
        //    {
        //        var db = SqlSugarHelper.GetInstance();
        //        // ===== 输出参数 =====
        //        var outFlag = new SugarParameter("P_FLAG", null,
        //            DbType.Int32, ParameterDirection.Output, 10);
        //        var outText = new SugarParameter("P_TEXT", null,
        //            DbType.String, ParameterDirection.Output, 4000);
        //        // ===== 输入参数 =====
        //        var parameters = new List<SugarParameter>
        //{
        //    new SugarParameter("P_ID", sqlPass2, DbType.Int64, ParameterDirection.Input),
        //    new SugarParameter("P_USER", rkjDto.userNo, DbType.String, ParameterDirection.Input),
        //    new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input),
        //    new SugarParameter("P_RELEASE_NO",rkjDto.releaseNo,DbType.String,ParameterDirection.Input),
        //    // 输出参数必须带上
        //    outFlag,
        //    outText
        //};
        //        // ===== 执行存储过程 =====
        //        db.Ado.ExecuteCommand(
        //            "BEGIN PRC_XJ_GENERATE_two(:P_ID, :P_USER, :P_ISH,:P_RELEASE_NO, :P_FLAG, :P_TEXT); END;",
        //            parameters);
        //        // ===== 读取输出参数并转换成 ResponseResult =====
        //        var result = new ResponseResult
        //        {
        //            status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 表示成功,1 表示失败
        //            message = outText.Value?.ToString()
        //        };
        //        var useTransactionWithOracle1 =
        //        SqlSugarHelper.UseTransactionWithOracle(db =>
        //        {
        //            return db.Updateable<QsQaItemXj>()
        //                .SetColumns(s => s.Fsubmit == 1)
        //                .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
        //                .SetColumns(s => s.FsubmitDate == DateTime.Now)
        //                .Where(s => s.Id == rkjDto.gid)
        //                .ExecuteCommand();
        //        });
        //        return new ResponseResult
        //        {
        //            status = 0,
        //            message = "提交成功",
        //            data = useTransactionWithOracle1
        //        };
        //    }
            var useTransactionWithOracle =
                SqlSugarHelper.UseTransactionWithOracle(db =>
@@ -942,25 +1020,6 @@
    /// <summary>
    /// 获取巡检检单所有不良描述
    /// </summary>
    /// <param name="id">检验单ID</param>
    /// <returns>不良描述数据表</returns>
    public DataTable ggetBlmsItem1(string id)
    {
        OracleSQLHelper SQLHelper = new();
        // 查询首检检验单的不良描述
        var sql1 = string.Format(
            @"select PROJ_NAME, REMARKS
              from QS_QA_ITEM_XJ01 f
              where PID = '" + id + "' and REMARKS is not null  order by PROJ_NAME");
        return SQLHelper.ExecuteQuery(sql1);
    }
    //孙表修改备注字段
    public int saveRemarksById(XJDto dto)
@@ -973,10 +1032,66 @@
                .Where(it => it.Id == dto.id)
                .ExecuteCommand();
        });
    }
    /// <summary>
    /// 添加巡检单
    /// </summary>
    public ResponseResult createInspection(CreateInspectionDto data)
    {
        try
        {
            OracleSQLHelper SQLHelper = new();
            var db = SqlSugarHelper.GetInstance();
            // ===== 输出参数 =====
            var outFlag = new SugarParameter("P_FLAG", null,
                DbType.Int32, ParameterDirection.Output, 10);
            var outText = new SugarParameter("P_TEXT", null,
                DbType.String, ParameterDirection.Output, 4000);
            // ===== 输入参数 =====
            var parameters = new List<SugarParameter>
        {
            new SugarParameter("P_line_type", data.LineNo, DbType.String, ParameterDirection.Input),
            new SugarParameter("P_Work_order_number", data.Daa001, DbType.String, ParameterDirection.Input),
            new SugarParameter("P_coding", data.ItemNo, DbType.String, ParameterDirection.Input),
            new SugarParameter("P_USER", data.account, DbType.String, ParameterDirection.Input),
            new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input),
            // 输出参数必须带上
            outFlag,
            outText
        };
            // ===== 执行存储过程 =====
            db.Ado.ExecuteCommand(
                "BEGIN PRC_XJ_GENERATE_one(:P_line_type,:P_Work_order_number,:P_coding, :P_USER, :P_ISH, :P_FLAG, :P_TEXT); END;",
                parameters);
            // ===== 读取输出参数并转换成 ResponseResult =====
            var result = new ResponseResult
            {
                status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 表示成功,1 表示失败
                message = outText.Value?.ToString()
            };
            return result;
            //return new ResponseResult
            //{
            //    status = 0,
            //    message = "OK",
            //    data = result
            //};
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}