From 312a1d1f6c53cfa789181b1c9c5fa74e4167f57d Mon Sep 17 00:00:00 2001 From: cnf <3200815559@qq.com> Date: 星期五, 15 八月 2025 15:40:58 +0800 Subject: [PATCH] Merge branch 'master' of http://git.gs-mes.com:8080/r/~kyy/LW_MesService --- WebApi/GS.QC/Service/MesQaMjManager.cs | 86 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 79 insertions(+), 7 deletions(-) diff --git a/WebApi/GS.QC/Service/MesQaMjManager.cs b/WebApi/GS.QC/Service/MesQaMjManager.cs index 2de656b..2449da8 100644 --- a/WebApi/GS.QC/Service/MesQaMjManager.cs +++ b/WebApi/GS.QC/Service/MesQaMjManager.cs @@ -127,13 +127,25 @@ } try { - //闃插憜鏄笉鏄睘浜庡悓涓�缁勭粐 - string supOrg = "", itemOrg = ""; - supOrg = Gs.Toolbox.DbHelperSQL.GetSingle("select top 1 FSubsidiary from MES_SUPPLIER a where a.id="+model.SuppId.ToString()).ToString(); - itemOrg = Gs.Toolbox.DbHelperSQL.GetSingle("select top 1 FSubsidiary from MES_ITEMS a where a.id=" + model.ItemId.ToString()).ToString(); - if (supOrg != itemOrg) { - return ReturnDto<string>.QuickReturn("", - ReturnCode.Default, "渚涘簲鍟嗗拰鐗╂枡涓嶅湪鍚屼竴缁勭粐涓嬶紝璇烽噸鏂伴�夋嫨锛�"); + // ===== 鏂板锛氱畝鍖栫殑鍏嶆缁存姢鏍¢獙閫昏緫 ===== + var validationResult = ValidateItemMaintenance(model); + if (!validationResult.IsSuccess) + { + return ReturnDto<string>.QuickReturn("", ReturnCode.Default, validationResult.Message); + } + + // ===== 淇敼锛氱粍缁囦竴鑷存�ф牎楠岋紙浠呭湪鏈変緵搴斿晢鏃惰繘琛岋級 ===== + // 褰撴病鏈夌淮鎶や緵搴斿晢鏃讹紙鍏ㄥ厤妫�锛夛紝璺宠繃缁勭粐鏍¢獙 + if (!string.IsNullOrEmpty(model.SuppId)) + { + string supOrg = "", itemOrg = ""; + supOrg = Gs.Toolbox.DbHelperSQL.GetSingle("select top 1 FSubsidiary from MES_SUPPLIER a where a.id=" + model.SuppId.ToString()).ToString(); + itemOrg = Gs.Toolbox.DbHelperSQL.GetSingle("select top 1 FSubsidiary from MES_ITEMS a where a.id=" + model.ItemId.ToString()).ToString(); + if (supOrg != itemOrg) + { + return ReturnDto<string>.QuickReturn("", + ReturnCode.Default, "渚涘簲鍟嗗拰鐗╂枡涓嶅湪鍚屼竴缁勭粐涓嬶紝璇烽噸鏂伴�夋嫨锛�"); + } } Db.Ado.BeginTran(); if (!UtilityHelper.CheckGuid(model.Guid)) @@ -224,4 +236,64 @@ .Count(); return cont; } + + /// <summary> + /// ===== 鏂板鏂规硶锛氱畝鍖栫殑鍏嶆缁存姢鏍¢獙閫昏緫 ===== + /// 涓氬姟瑙勫垯锛堜簰鏂ュ師鍒欙級锛� + /// 1. 鍏ㄥ厤妫�妯″紡锛氱墿鏂欎笉缁存姢渚涘簲鍟嗭紙SuppId涓虹┖锛夛紝琛ㄧず瀵规墍鏈変緵搴斿晢鍏嶆 + /// 2. 鎸囧畾鍏嶆妯″紡锛氱墿鏂欑淮鎶ょ壒瀹氫緵搴斿晢锛岃〃绀轰粎瀵规寚瀹氫緵搴斿晢鍏嶆 + /// 3. 涓ょ妯″紡涓嶈兘鍏卞瓨锛屼竴鏃﹂�夋嫨浜嗕竴绉嶆ā寮忥紝灏变笉鑳藉垏鎹㈠埌鍙︿竴绉嶆ā寮� + /// 4. 鍚岀墿鏂�+鍚屼緵搴斿晢鐨勮褰曚笉鍏佽閲嶅 + /// </summary> + /// <param name="model">瑕佷繚瀛樼殑鍏嶆璁板綍</param> + /// <returns>鏍¢獙缁撴灉</returns> + private (bool IsSuccess, string Message) ValidateItemMaintenance(MesQaMj model) + { + // 鏌ヨ褰撳墠鐗╂枡鐨勬墍鏈夊厤妫�璁板綍 + var query = Db.Queryable<MesQaMj>() + .Where(x => x.ItemId == model.ItemId); + + // 濡傛灉鏄紪杈戞搷浣滐紝鎺掗櫎褰撳墠璁板綍閬垮厤璇垽 + if (UtilityHelper.CheckGuid(model.Guid)) + { + query = query.Where(x => x.Guid != model.Guid); + } + + var existingRecords = query.ToList(); + bool isCurrentGlobalMode = string.IsNullOrEmpty(model.SuppId); // 褰撳墠瑕佷繚瀛樼殑鏄惁涓哄叏鍏嶆妯″紡 + + // 妫�鏌ョ幇鏈夎褰曠殑妯″紡 + var hasGlobalRecord = existingRecords.Any(x => string.IsNullOrEmpty(x.SuppId)); // 鏄惁宸叉湁鍏ㄥ厤妫�璁板綍 + var hasSpecificRecord = existingRecords.Any(x => !string.IsNullOrEmpty(x.SuppId)); // 鏄惁宸叉湁鎸囧畾渚涘簲鍟嗗厤妫�璁板綍 + + if (isCurrentGlobalMode) + { + // 瑕佷繚瀛樺叏鍏嶆妯″紡 + if (hasGlobalRecord) + { + return (false, "璇ョ墿鏂欏凡瀛樺湪鍏ㄥ厤妫�璁板綍锛屼笉鑳介噸澶嶆坊鍔狅紒"); + } + if (hasSpecificRecord) + { + return (false, "璇ョ墿鏂欏凡缁存姢浜嗘寚瀹氫緵搴斿晢鍏嶆锛屼笉鑳藉啀璁剧疆鍏ㄥ厤妫�妯″紡锛佽缁х画缁存姢鍏蜂綋渚涘簲鍟嗐��"); + } + } + else + { + // 瑕佷繚瀛樻寚瀹氫緵搴斿晢鍏嶆妯″紡 + if (hasGlobalRecord) + { + return (false, "璇ョ墿鏂欏凡璁剧疆涓哄叏鍏嶆妯″紡锛屼笉鑳藉啀娣诲姞鎸囧畾渚涘簲鍟嗗厤妫�璁板綍锛�"); + } + + // 妫�鏌ユ槸鍚︿笌鐜版湁鐨勬寚瀹氫緵搴斿晢璁板綍閲嶅 + var hasDuplicateSupplier = existingRecords.Any(x => x.SuppId == model.SuppId); + if (hasDuplicateSupplier) + { + return (false, "璇ョ墿鏂欎笌璇ヤ緵搴斿晢鐨勫厤妫�璁板綍宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); + } + } + + return (true, ""); // 鏍¢獙閫氳繃 + } } \ No newline at end of file -- Gitblit v1.9.3