From a619299816f2f632c7c6ba3a1bb869e2c212797d Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期五, 19 十二月 2025 14:12:33 +0800
Subject: [PATCH] 对添加巡检单物料编码进行去重
---
StandardPda/MES.Service/service/QC/LljService.cs | 260 ++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 191 insertions(+), 69 deletions(-)
diff --git a/StandardPda/MES.Service/service/QC/LljService.cs b/StandardPda/MES.Service/service/QC/LljService.cs
index 5b2ad6e..6deba4d 100644
--- a/StandardPda/MES.Service/service/QC/LljService.cs
+++ b/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
{
- // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- appKey = DataAcquisitionConfiguration.APP_KEY,
+ //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ 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
{
- // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
+ //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ 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
{
- //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- //appKey = DataAcquisitionConfiguration.APP_KEY,
- //// 鎺ュ彛鐗堟湰
- //version = "1.0",
- //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
- //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
- //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
- //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
- //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
- //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
- // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
+ //// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ 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()
+
+ // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ //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
- {
+ {
//// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- //appKey = DataAcquisitionConfiguration.APP_KEY,
- //// 鎺ュ彛鐗堟湰
- //version = "1.0",
- //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
- //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
- //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
- //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
- //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
- //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
-
- // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- 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()
+
+ // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ //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
{
//// 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- //appKey = DataAcquisitionConfiguration.APP_KEY,
- //// 鎺ュ彛鐗堟湰
- //version = "1.0",
- //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
- //operateCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
- //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
- //ownerCompanyCode = DataAcquisitionConfiguration.COMPANY_CODE,
- //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
- //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
-
- // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
- 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()
+
+ // 鍙戞惡瀹簯鎻愪緵鐨刟ppKey
+ //appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
+ //// 鎺ュ彛鐗堟湰
+ //version = "1.0",
+ //// 鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
+ //operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
+ //// 鏁版嵁鎵�灞炲叕鍙哥紪鐮侊紝闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
+ //ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
+ //// 褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
+ //timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
};
--
Gitblit v1.9.3