1.0.408.verify.sql 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. -- ===========================================================================
  2. -- STEP 2B VERIFY —— 全部为 SELECT 真值标量断言(AutoVersionUpdate 的 IsTruthy 契约)
  3. -- 禁用 SET / 用户变量:租户与组织一律内联子查询
  4. -- 文件以最后一条 SQL 的 ; 结束
  5. -- ===========================================================================
  6. -- ---------- §1 行数(21 张表,合计 110) ----------
  7. SELECT COUNT(*) = 5 FROM PersonSkill
  8. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  9. SELECT COUNT(*) = 10 FROM EmpSkills
  10. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  11. SELECT COUNT(*) = 4 FROM ImageType
  12. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  13. SELECT COUNT(*) = 3 FROM QualitySegmentImage
  14. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  15. SELECT COUNT(*) = 5 FROM PreprocessElementParam
  16. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  17. SELECT COUNT(*) = 4 FROM PreprocessElement
  18. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  19. SELECT COUNT(*) = 5 FROM DevMonitor
  20. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  21. SELECT COUNT(*) = 6 FROM ProdLineDetail
  22. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  23. SELECT COUNT(*) = 5 FROM ItemOpCondition
  24. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  25. SELECT COUNT(*) = 10 FROM ItemPackMaster
  26. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  27. SELECT COUNT(*) = 6 FROM ItemSubstituteDetail
  28. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  29. SELECT COUNT(*) = 5 FROM ic_substitute
  30. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  31. SELECT COUNT(*) = 4 FROM S0ProcessFlowCard
  32. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  33. SELECT COUNT(*) = 4 FROM wms_rwzp
  34. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  35. SELECT COUNT(*) = 4 FROM PriorityCode
  36. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  37. SELECT COUNT(*) = 6 FROM BarCodeType
  38. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  39. SELECT COUNT(*) = 2 FROM BarCodeNbr
  40. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  41. SELECT COUNT(*) = 1 FROM WorkOrdControl
  42. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  43. SELECT COUNT(*) = 1 FROM ado_kitting_exclude_rule
  44. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  45. SELECT COUNT(*) = 5 FROM S0ContractReviewCycle
  46. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  47. SELECT COUNT(*) = 15 FROM S0ContractReviewCycleBreakdown
  48. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  49. -- ---------- §2 FK 闭合(dangling 必须为 0) ----------
  50. SELECT COUNT(*) = 0 FROM EmpSkills s
  51. WHERE s.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  52. AND NOT EXISTS (SELECT 1 FROM EmployeeMaster e WHERE e.tenant_id = s.tenant_id AND e.Employee = s.Employee);
  53. SELECT COUNT(*) = 0 FROM EmpSkills s
  54. WHERE s.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  55. AND NOT EXISTS (SELECT 1 FROM PersonSkill p WHERE p.tenant_id = s.tenant_id AND p.Code = s.SkillNo);
  56. SELECT COUNT(*) = 0 FROM ProdLineDetail d
  57. WHERE d.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  58. AND NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = d.tenant_id AND i.ItemNum = d.Part);
  59. SELECT COUNT(*) = 0 FROM ProdLineDetail d
  60. WHERE d.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  61. AND NOT EXISTS (SELECT 1 FROM LineMaster l WHERE l.tenant_id = d.tenant_id AND l.Line = d.Line);
  62. SELECT COUNT(*) = 0 FROM ItemOpCondition c
  63. WHERE c.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  64. AND NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = c.tenant_id AND i.ItemNum = c.ItemNum);
  65. SELECT COUNT(*) = 0 FROM PreprocessElement p
  66. WHERE p.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  67. AND NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = p.tenant_id AND i.ItemNum = p.item_num);
  68. SELECT COUNT(*) = 0 FROM ItemPackMaster p
  69. WHERE p.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  70. AND NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = p.tenant_id AND i.ItemNum = p.ItemNum);
  71. SELECT COUNT(*) = 0 FROM ItemSubstituteDetail s
  72. WHERE s.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  73. AND (NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = s.tenant_id AND i.ItemNum = s.ParentItem)
  74. OR NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = s.tenant_id AND i.ItemNum = s.ItemNum)
  75. OR NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = s.tenant_id AND i.ItemNum = s.SubstituteItem));
  76. SELECT COUNT(*) = 0 FROM ic_substitute c
  77. WHERE c.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  78. AND NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = c.tenant_id AND i.ItemNum = c.substitute_code);
  79. SELECT COUNT(*) = 0 FROM S0ProcessFlowCard f
  80. WHERE f.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  81. AND NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = f.tenant_id AND i.ItemNum = f.item_num);
  82. SELECT COUNT(*) = 0 FROM wms_rwzp w
  83. WHERE w.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  84. AND (NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = w.tenant_id AND i.ItemNum = w.wlbm)
  85. OR NOT EXISTS (SELECT 1 FROM LocationMaster l WHERE l.tenant_id = w.tenant_id AND l.location = w.yskw)
  86. OR NOT EXISTS (SELECT 1 FROM LocationMaster l WHERE l.tenant_id = w.tenant_id AND l.location = w.mdkw));
  87. SELECT COUNT(*) = 0 FROM BarCodeNbr b
  88. WHERE b.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  89. AND (NOT EXISTS (SELECT 1 FROM CustMaster c WHERE c.tenant_id = b.tenant_id AND c.Cust = b.Customer)
  90. OR NOT EXISTS (SELECT 1 FROM BarCodeType t2 WHERE t2.tenant_id = b.tenant_id AND t2.bar_type = b.Type AND t2.domain_code = b.Domain));
  91. SELECT COUNT(*) = 0 FROM QualitySegmentImage q
  92. WHERE q.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  93. AND (NOT EXISTS (SELECT 1 FROM ImageType it WHERE it.tenant_id = q.tenant_id AND it.image_type_id = q.image_type_id)
  94. OR NOT EXISTS (SELECT 1 FROM ItemMaster i WHERE i.tenant_id = q.tenant_id AND i.ItemNum = q.item_num));
  95. SELECT COUNT(*) = 0 FROM S0ContractReviewCycleBreakdown b
  96. WHERE b.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  97. AND NOT EXISTS (SELECT 1 FROM S0ContractReviewCycle m
  98. WHERE m.tenant_id = b.tenant_id AND m.factory_ref_id = b.factory_ref_id
  99. AND m.stage_code = b.parent_stage_code);
  100. -- ---------- §3 合同评审主从工时一致性(分解求和 = 主表 std_hours) ----------
  101. SELECT COUNT(*) = 0 FROM (
  102. SELECT m.stage_code
  103. FROM S0ContractReviewCycle m
  104. JOIN S0ContractReviewCycleBreakdown b
  105. ON b.tenant_id = m.tenant_id AND b.factory_ref_id = m.factory_ref_id AND b.parent_stage_code = m.stage_code
  106. WHERE m.tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  107. GROUP BY m.stage_code, m.std_hours
  108. HAVING SUM(b.std_hours) <> m.std_hours
  109. ) x;
  110. -- ---------- §4 业务键唯一性(目标租户内) ----------
  111. SELECT COUNT(*) = 0 FROM (SELECT Code FROM PersonSkill WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY Code HAVING COUNT(*)>1) x;
  112. SELECT COUNT(*) = 0 FROM (SELECT Employee, SkillNo FROM EmpSkills WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY Employee, SkillNo HAVING COUNT(*)>1) x;
  113. SELECT COUNT(*) = 0 FROM (SELECT image_type_id FROM ImageType WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY image_type_id HAVING COUNT(*)>1) x;
  114. SELECT COUNT(*) = 0 FROM (SELECT item_num, op, image_type_id FROM QualitySegmentImage WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY item_num, op, image_type_id HAVING COUNT(*)>1) x;
  115. SELECT COUNT(*) = 0 FROM (SELECT device_number, message_code FROM PreprocessElementParam WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY device_number, message_code HAVING COUNT(*)>1) x;
  116. SELECT COUNT(*) = 0 FROM (SELECT item_num, is_main FROM PreprocessElement WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY item_num, is_main HAVING COUNT(*)>1) x;
  117. SELECT COUNT(*) = 0 FROM (SELECT DeviceNumber, MessageCode, CodeType FROM DevMonitor WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY DeviceNumber, MessageCode, CodeType HAVING COUNT(*)>1) x;
  118. SELECT COUNT(*) = 0 FROM (SELECT Part, Op, Line FROM ProdLineDetail WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY Part, Op, Line HAVING COUNT(*)>1) x;
  119. SELECT COUNT(*) = 0 FROM (SELECT ItemNum, IsMain, CodeType FROM ItemOpCondition WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY ItemNum, IsMain, CodeType HAVING COUNT(*)>1) x;
  120. SELECT COUNT(*) = 0 FROM (SELECT ParentItem, ItemNum, SubstituteItem FROM ItemSubstituteDetail WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY ParentItem, ItemNum, SubstituteItem HAVING COUNT(*)>1) x;
  121. SELECT COUNT(*) = 0 FROM (SELECT substitute_code, substitute_strategy, substitute_mode FROM ic_substitute WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY substitute_code, substitute_strategy, substitute_mode HAVING COUNT(*)>1) x;
  122. SELECT COUNT(*) = 0 FROM (SELECT flow_card_no FROM S0ProcessFlowCard WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY flow_card_no HAVING COUNT(*)>1) x;
  123. SELECT COUNT(*) = 0 FROM (SELECT Descr FROM PriorityCode WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY Descr HAVING COUNT(*)>1) x;
  124. SELECT COUNT(*) = 0 FROM (SELECT domain_code, bar_type FROM BarCodeType WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY domain_code, bar_type HAVING COUNT(*)>1) x;
  125. SELECT COUNT(*) = 0 FROM (SELECT Domain, Customer, Type FROM BarCodeNbr WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY Domain, Customer, Type HAVING COUNT(*)>1) x;
  126. SELECT COUNT(*) = 0 FROM (SELECT stage_code FROM S0ContractReviewCycle WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY stage_code HAVING COUNT(*)>1) x;
  127. SELECT COUNT(*) = 0 FROM (SELECT parent_stage_code, group_code FROM S0ContractReviewCycleBreakdown WHERE tenant_id=(SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1) GROUP BY parent_stage_code, group_code HAVING COUNT(*)>1) x;
  128. -- ---------- §5 无 tenant 的 UK:ItemPackMaster(Domain+ItemNum) 必须做【全表】唯一断言 ----------
  129. SELECT COUNT(*) = 0 FROM (SELECT Domain, ItemNum FROM ItemPackMaster GROUP BY Domain, ItemNum HAVING COUNT(*)>1) x;
  130. -- ---------- §6 目标 scope:tenant / org / domain ----------
  131. SELECT COUNT(*) = 10 FROM ItemPackMaster
  132. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  133. AND company_ref_id = (SELECT t.OrgId FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  134. AND factory_ref_id = (SELECT t.OrgId FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  135. SELECT COUNT(*) = 5 FROM PersonSkill
  136. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  137. AND CompanyRefId = (SELECT t.OrgId FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  138. AND FactoryRefId = (SELECT t.OrgId FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  139. SELECT COUNT(*) = 5 FROM S0ContractReviewCycle
  140. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  141. AND factory_ref_id = (SELECT t.OrgId FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  142. SELECT COUNT(*) = 15 FROM S0ContractReviewCycleBreakdown
  143. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  144. AND factory_ref_id = (SELECT t.OrgId FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  145. SELECT COUNT(*) = 4 FROM ImageType
  146. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  147. AND domain = '8010';
  148. -- ---------- §7 DEMO/AI 污染隔离(仅检查目标租户) ----------
  149. SELECT COUNT(*) = 0 FROM ImageType
  150. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  151. AND (image_type_id LIKE 'DEMO-%' OR image_type_id LIKE 'AI-%' OR descr LIKE '%[DEMO]%' OR descr LIKE '%AI测试%');
  152. SELECT COUNT(*) = 4 FROM ImageType
  153. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  154. AND image_type_id LIKE 'UATD-SOP-%';
  155. SELECT COUNT(*) = 0 FROM QualitySegmentImage
  156. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  157. AND (image_type_id LIKE 'DEMO-%' OR descr LIKE '%[DEMO]%');
  158. SELECT COUNT(*) = 0 FROM PersonSkill
  159. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  160. AND (Name LIKE '%[DEMO]%' OR Name LIKE '%AI测试%' OR Code LIKE 'AI-%');
  161. SELECT COUNT(*) = 0 FROM DevMonitor
  162. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  163. AND (DeviceDescr LIKE '%[DEMO]%' OR CodeDescr LIKE '%[DEMO]%'
  164. OR DeviceNumber LIKE 'DEMO-%' OR MessageCode LIKE 'DEMO-%');
  165. SELECT COUNT(*) = 5 FROM DevMonitor
  166. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  167. AND DeviceNumber LIKE 'UATD-%' AND MessageCode LIKE 'UATD-%';
  168. SELECT COUNT(*) = 0 FROM PreprocessElementParam
  169. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  170. AND (device_descr LIKE '%[DEMO]%' OR code_descr LIKE '%[DEMO]%'
  171. OR device_number LIKE 'DEMO-%' OR message_code LIKE 'DEMO-%');
  172. SELECT COUNT(*) = 5 FROM PreprocessElementParam
  173. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  174. AND device_number LIKE 'UATD-%' AND message_code LIKE 'UATD-%';
  175. SELECT COUNT(*) = 0 FROM BarCodeNbr
  176. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  177. AND (FirmString1Note LIKE '%[DEMO]%' OR FirmString2Note LIKE '%[DEMO]%');
  178. SELECT COUNT(*) = 0 FROM ItemOpCondition
  179. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  180. AND (Descr LIKE '%S0DEMO_BATCH1%' OR Descr LIKE '%[DEMO]%');
  181. SELECT COUNT(*) = 0 FROM PreprocessElement
  182. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  183. AND (descr LIKE '%[DEMO]%' OR item_code LIKE 'DEMO-%');
  184. SELECT COUNT(*) = 0 FROM wms_rwzp
  185. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1)
  186. AND (rwlx LIKE '%[DEMO]%' OR zt LIKE '%[DEMO]%' OR rqpc LIKE 'DEMO-%');
  187. -- ---------- §8 LineSkill 必须仍为 0(确认 Site 未被发明) ----------
  188. SELECT COUNT(*) = 0 FROM LineSkillMaster
  189. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  190. SELECT COUNT(*) = 0 FROM LineSkillDetail
  191. WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  192. -- ---------- §9 源租户 / 默认租户未被写入(本批只读它们) ----------
  193. SELECT COUNT(*) = 5 FROM PersonSkill WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='AIDOP' AND t.Status=1 LIMIT 1);
  194. SELECT COUNT(*) = 8 FROM EmpSkills WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='AIDOP' AND t.Status=1 LIMIT 1);
  195. SELECT COUNT(*) = 4 FROM ImageType WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='AIDOP' AND t.Status=1 LIMIT 1);
  196. SELECT COUNT(*) = 1 FROM WorkOrdControl WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='AIDOP' AND t.Status=1 LIMIT 1);
  197. SELECT COUNT(*) = 10 FROM S0ContractReviewCycle WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='AIDOP-Demo' AND t.Status=1 LIMIT 1);
  198. SELECT COUNT(*) = 18 FROM S0ContractReviewCycleBreakdown WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='AIDOP-Demo' AND t.Status=1 LIMIT 1);
  199. SELECT COUNT(*) = 5 FROM ImageType WHERE tenant_id = 1300000000001;
  200. SELECT COUNT(*) = 5 FROM PreprocessElementParam WHERE tenant_id = 1300000000001;
  201. SELECT COUNT(*) = 5 FROM DevMonitor WHERE tenant_id = 1300000000001;
  202. -- ---------- §10 既有 S0 主数据回归(不得被本批影响) ----------
  203. SELECT COUNT(*) = 5 FROM CustMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  204. SELECT COUNT(*) = 7 FROM DepartmentMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  205. SELECT COUNT(*) = 26 FROM EmployeeMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  206. SELECT COUNT(*) = 13 FROM SuppMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  207. SELECT COUNT(*) = 56 FROM ItemMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  208. SELECT COUNT(*) = 18 FROM LocationMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  209. SELECT COUNT(*) = 20 FROM LineMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  210. SELECT COUNT(*) = 7 FROM WorkCtrMaster WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  211. SELECT COUNT(*) = 5 FROM qms_inspection_method WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);
  212. SELECT COUNT(*) = 7 FROM qms_jygf WHERE tenant_id = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id=t.OrgId WHERE o.Code='UATTEST_CHL' AND t.Status=1 LIMIT 1);