fcx
4 天以前 a619299816f2f632c7c6ba3a1bb869e2c212797d
StandardPda/MES.Service/service/QC/LljService.cs
@@ -4,7 +4,9 @@
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using Oracle.ManagedDataAccess.Client;
using SqlSugar;
using System.Data;
using System.Security.Cryptography;
@@ -18,6 +20,10 @@
public class LljService
{
    private static readonly HttpClient client = new();
    private static IConfiguration configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .Build();
    public (List<LtsLlj> item, int TotalCount) GetPage(XJPageResult queryObj)
    {
@@ -340,6 +346,8 @@
                DbType.String, ParameterDirection.Input),
            new("PI_REMARK", sysSubmit.PI_REMARK,
                DbType.String, ParameterDirection.Input),
               new("PI_SAMPLE_QTY", sysSubmit.PI_SAMPLE_QTY,
                DbType.String, ParameterDirection.Input),
            outputResult,
            outputMessage
        };
@@ -348,7 +356,51 @@
        // 使用 SqlSugar 执行存储过程
        db.Ado.ExecuteCommand(
            "BEGIN PRC_MES_IQC_QC_SYSSUBMIT(:PI_BILLNO,:PI_USER,:PI_SAMPLE_STATUS,:PI_SAMPLE_TYPE,:PI_SAMPLE_REASON,:PI_INSPECT_TYPE,:PI_SAMPLE_PREPARATION,:PI_URGENCY,:PI_FIRMWAREVERSION,:PI_HARDWAREVERSION,:PI_REMARK, :o_Result, :o_Msg); END;",
            "BEGIN PRC_MES_IQC_QC_SYSSUBMIT(:PI_BILLNO,:PI_USER,:PI_SAMPLE_STATUS,:PI_SAMPLE_TYPE,:PI_SAMPLE_REASON,:PI_INSPECT_TYPE,:PI_SAMPLE_PREPARATION,:PI_URGENCY,:PI_FIRMWAREVERSION,:PI_HARDWAREVERSION,:PI_REMARK,:PI_SAMPLE_QTY, :o_Result, :o_Msg); END;",
            parameters.ToArray());
        // 获取输出参数的值
        var resultValue = outputResult.Value?.ToString();
        var messageValue = outputMessage.Value?.ToString();
        var msg = new string[2];
        msg[0] = resultValue;
        msg[1] = messageValue;
        return msg;
    }
    public string[] SaveYCCZSubmit(YCCZSubmit sysSubmit)
    {
        // 定义输出参数
        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("PI_BILLNO", sysSubmit.PI_BILLNO,
                DbType.String, ParameterDirection.Input),
            new("PI_USER", sysSubmit.PI_USER,
                DbType.String, ParameterDirection.Input),
            new("PTOTAL_QTY", sysSubmit.PI_QTY,
                DbType.String, ParameterDirection.Input),
            new("PNG_QTY", sysSubmit.PI_BADQTY,
                DbType.String, ParameterDirection.Input),
            outputResult,
            outputMessage
        };
        var db = SqlSugarHelper.GetInstance();
        // 使用 SqlSugar 执行存储过程
        db.Ado.ExecuteCommand(
            "BEGIN PRC_MES_IQC_QC_YCCZ(:PI_BILLNO,:PI_USER,:PTOTAL_QTY,:PNG_QTY,:o_Result, :o_Msg); END;",
            parameters.ToArray());
        // 获取输出参数的值
@@ -1453,28 +1505,96 @@
        return SQLHelper.ExecuteQuery(sql1);
    }
    //public void saveYzxBDlist(string id, DataTable DB)
    //{
    //    OracleSQLHelper SQLHelper = new();
    //    //先把结果清空
    //    var sql1 =
    //        string.Format(
    //            @"update MES_IQC_CONSISTENCY_ck set ISCHACK=0 where PID='" +
    //            id + "' ");
    //    SQLHelper.ExecuteQuery(sql1);
    //    var rowId = "";
    //    for (var i = 0; i < DB.Rows.Count; i++)
    //        rowId += "'" + DB.Rows[i]["id"] + "',";
    //    rowId = rowId.Substring(0, rowId.Length - 1);
    //    //修改结果
    //    var sql2 =
    //        string.Format(
    //            @"update MES_IQC_CONSISTENCY_ck set ISCHACK=1 where PID='" +
    //            id + "'and id in(" + rowId + ") ");
    //    SQLHelper.ExecuteQuery(sql2);
    //}
    public void saveYzxBDlist(string id, DataTable DB)
    {
        OracleSQLHelper SQLHelper = new();
        //先把结果清空
        var sql1 =
            string.Format(
                @"update MES_IQC_CONSISTENCY_ck set ISCHACK=0 where PID='" +
                id + "' ");
        SQLHelper.ExecuteQuery(sql1);
        var rowId = "";
        for (var i = 0; i < DB.Rows.Count; i++)
            rowId += "'" + DB.Rows[i]["id"] + "',";
        rowId = rowId.Substring(0, rowId.Length - 1);
        var sqlHelper = new OracleSQLHelper();
        using (var connection = new OracleConnection(AppsettingsUtility.Settings.DataBaseConn))
        {
            connection.Open();
            using (var transaction = connection.BeginTransaction())
            {
                try
                {
                    // 1. 清空 ISCHACK
                    var sql1 = @"UPDATE MES_IQC_CONSISTENCY_ck
                             SET ISCHACK = 0
                             WHERE PID = :pid";
        //修改结果
        var sql2 =
            string.Format(
                @"update MES_IQC_CONSISTENCY_ck set ISCHACK=1 where PID='" +
                id + "'and id in(" + rowId + ") ");
        SQLHelper.ExecuteQuery(sql2);
                    using (var cmd1 = new OracleCommand(sql1, connection))
                    {
                        cmd1.Transaction = transaction;
                        cmd1.Parameters.Add(new OracleParameter(":pid", id));
                        cmd1.ExecuteNonQuery();
                    }
                    // 2. 如果 DataTable 里有要更新的 id
                    if (DB != null && DB.Rows.Count > 0)
                    {
                        // 拼接 in 条件(参数化)
                        var inParams = new List<string>();
                        var parameters = new List<OracleParameter>
                    {
                        new OracleParameter(":pid", id)
                    };
                        for (int i = 0; i < DB.Rows.Count; i++)
                        {
                            string paramName = ":id" + i;
                            inParams.Add(paramName);
                            parameters.Add(new OracleParameter(paramName, DB.Rows[i]["id"]));
                        }
                        var sql2 = $@"
                        UPDATE MES_IQC_CONSISTENCY_ck
                           SET ISCHACK = 1
                         WHERE PID = :pid
                           AND id IN ({string.Join(",", inParams)})";
                        using (var cmd2 = new OracleCommand(sql2, connection))
                        {
                            cmd2.Transaction = transaction;
                            cmd2.Parameters.AddRange(parameters.ToArray());
                            cmd2.ExecuteNonQuery();
                        }
                    }
                    // 全部成功,提交
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    // 出错回滚
                    transaction.Rollback();
                    throw new Exception("执行 saveYzxBDlist 出错: " + ex.Message, ex);
                }
            }
        }
    }
    public string[] YzxImgVerify(string id)
    {
@@ -1843,14 +1963,14 @@
        {
            var apiParam = new ApiCommonParam
            {
                // 发携客云提供的appKey
                appKey = DataAcquisitionConfiguration.APP_KEY,
                //// 发携客云提供的appKey
                appKey = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.APP_KEY : DataAcquisitionConfiguration.TEST_APP_KEY,
                // 接口版本
                version = "1.0",
                // 操作者所属公司编码
                operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                operateCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 数据所属公司编码,非集团公司默认赋值为操作公司
                ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                ownerCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 当前时间对应的时间戳(秒数)
                timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };
@@ -1873,14 +1993,14 @@
        {
            var apiParam = new ApiCommonParam
            {
                // 发携客云提供的appKey
                appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                //// 发携客云提供的appKey
                appKey = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.APP_KEY : DataAcquisitionConfiguration.TEST_APP_KEY,
                // 接口版本
                version = "1.0",
                // 操作者所属公司编码
                operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                operateCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 数据所属公司编码,非集团公司默认赋值为操作公司
                ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                ownerCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 当前时间对应的时间戳(秒数)
                timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };
@@ -1908,29 +2028,31 @@
        public static XkyinnerVendorParam GetInit()
        {
            var apiParam = new ApiCommonParam
            {
                //// 发携客云提供的appKey
                //appKey = DataAcquisitionConfiguration.APP_KEY,
                //// 接口版本
                //version = "1.0",
                //// 操作者所属公司编码
                //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                //// 数据所属公司编码,非集团公司默认赋值为操作公司
                //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                //// 当前时间对应的时间戳(秒数)
                //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                // 发携客云提供的appKey
                appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                //// 发携客云提供的appKey
                appKey = (configuration["AppSettings:XKYamgylchedd"]=="1")?DataAcquisitionConfiguration.APP_KEY: DataAcquisitionConfiguration.TEST_APP_KEY,
                // 接口版本
                version = "1.0",
                // 操作者所属公司编码
                operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                operateCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1")?DataAcquisitionConfiguration.COMPANY_CODE:DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 数据所属公司编码,非集团公司默认赋值为操作公司
                ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                ownerCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1")?DataAcquisitionConfiguration.COMPANY_CODE: DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 当前时间对应的时间戳(秒数)
                timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                // 发携客云提供的appKey
                //appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                //// 接口版本
                //version = "1.0",
                //// 操作者所属公司编码
                //operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                //// 数据所属公司编码,非集团公司默认赋值为操作公司
                //ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                //// 当前时间对应的时间戳(秒数)
                //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };
@@ -1958,28 +2080,28 @@
        public static XkyFlushedrVendorParam GetInit()
        {
            var apiParam = new ApiCommonParam
            {
            {
                //// 发携客云提供的appKey
                //appKey = DataAcquisitionConfiguration.APP_KEY,
                //// 接口版本
                //version = "1.0",
                //// 操作者所属公司编码
                //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                //// 数据所属公司编码,非集团公司默认赋值为操作公司
                //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                //// 当前时间对应的时间戳(秒数)
                //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                // 发携客云提供的appKey
                appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                appKey = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.APP_KEY : DataAcquisitionConfiguration.TEST_APP_KEY,
                // 接口版本
                version = "1.0",
                // 操作者所属公司编码
                operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                operateCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 数据所属公司编码,非集团公司默认赋值为操作公司
                ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                ownerCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 当前时间对应的时间戳(秒数)
                timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                // 发携客云提供的appKey
                //appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                //// 接口版本
                //version = "1.0",
                //// 操作者所属公司编码
                //operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                //// 数据所属公司编码,非集团公司默认赋值为操作公司
                //ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                //// 当前时间对应的时间戳(秒数)
                //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };
@@ -2009,26 +2131,26 @@
            var apiParam = new ApiCommonParam
            {
                //// 发携客云提供的appKey
                //appKey = DataAcquisitionConfiguration.APP_KEY,
                //// 接口版本
                //version = "1.0",
                //// 操作者所属公司编码
                //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                //// 数据所属公司编码,非集团公司默认赋值为操作公司
                //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
                //// 当前时间对应的时间戳(秒数)
                //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                // 发携客云提供的appKey
                appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                appKey = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.APP_KEY : DataAcquisitionConfiguration.TEST_APP_KEY,
                // 接口版本
                version = "1.0",
                // 操作者所属公司编码
                operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                operateCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 数据所属公司编码,非集团公司默认赋值为操作公司
                ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                ownerCompanyCode = (configuration["AppSettings:XKYamgylchedd"] == "1") ? DataAcquisitionConfiguration.COMPANY_CODE : DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 当前时间对应的时间戳(秒数)
                timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                // 发携客云提供的appKey
                //appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                //// 接口版本
                //version = "1.0",
                //// 操作者所属公司编码
                //operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                //// 数据所属公司编码,非集团公司默认赋值为操作公司
                //ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                //// 当前时间对应的时间戳(秒数)
                //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };