From d5bbd17a1428811da046ec3be3c0cc943a7ae059 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 17 六月 2026 15:13:20 +0800
Subject: [PATCH] ai数据自动生成
---
src/main/java/com/ruoyi/mock/service/impl/DataCheckServiceImpl.java | 136 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 136 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/mock/service/impl/DataCheckServiceImpl.java b/src/main/java/com/ruoyi/mock/service/impl/DataCheckServiceImpl.java
index 870e20b..0fc4718 100644
--- a/src/main/java/com/ruoyi/mock/service/impl/DataCheckServiceImpl.java
+++ b/src/main/java/com/ruoyi/mock/service/impl/DataCheckServiceImpl.java
@@ -5,14 +5,26 @@
import com.ruoyi.approve.mapper.ApprovalTemplateMapper;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.mapper.ProductMapper;
+import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.mapper.SupplierManageMapper;
import com.ruoyi.common.enums.TypeEnums;
import com.ruoyi.mock.dto.DataCheckRequest;
import com.ruoyi.mock.service.DataCheckService;
import com.ruoyi.mock.vo.DataCheckResult;
import com.ruoyi.mock.vo.DataCheckResult.CheckItem;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.quality.mapper.QualityTestStandardBindingMapper;
import com.ruoyi.quality.mapper.QualityTestStandardMapper;
+import com.ruoyi.technology.mapper.TechnologyBomMapper;
+import com.ruoyi.technology.mapper.TechnologyBomStructureMapper;
+import com.ruoyi.technology.mapper.TechnologyOperationMapper;
+import com.ruoyi.technology.mapper.TechnologyRoutingMapper;
+import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
+import com.ruoyi.technology.pojo.TechnologyBom;
+import com.ruoyi.technology.pojo.TechnologyBomStructure;
+import com.ruoyi.technology.pojo.TechnologyRouting;
+import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -26,11 +38,18 @@
public class DataCheckServiceImpl implements DataCheckService {
private final ProductMapper productMapper;
+ private final ProductModelMapper productModelMapper;
private final CustomerMapper customerMapper;
private final SupplierManageMapper supplierManageMapper;
private final ApprovalTemplateMapper approvalTemplateMapper;
private final QualityTestStandardMapper qualityTestStandardMapper;
private final QualityTestStandardBindingMapper qualityTestStandardBindingMapper;
+ private final TechnologyRoutingMapper technologyRoutingMapper;
+ private final TechnologyRoutingOperationMapper technologyRoutingOperationMapper;
+ private final TechnologyOperationMapper technologyOperationMapper;
+ private final TechnologyBomMapper technologyBomMapper;
+ private final TechnologyBomStructureMapper technologyBomStructureMapper;
+ private final SysUserMapper sysUserMapper;
@Override
public DataCheckResult check(DataCheckRequest request) {
@@ -43,6 +62,7 @@
if (!modules.isEmpty()) {
addProductCheck(itemMap);
+ addUserChecks(itemMap);
}
for (String module : modules) {
@@ -50,6 +70,7 @@
case "sales" -> addSalesChecks(itemMap);
case "purchase" -> addPurchaseChecks(itemMap);
case "quality" -> addQualityChecks(itemMap);
+ case "production" -> addProductionChecks(itemMap);
}
}
@@ -70,6 +91,34 @@
long count = productMapper.selectCount(null);
itemMap.put(key, buildItem("common", "浜у搧鏁版嵁", 1, (int) count,
"缂哄皯浜у搧鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑娣诲姞鑷冲皯1鏉′骇鍝�"));
+ }
+
+ private void addUserChecks(Map<String, CheckItem> itemMap) {
+ // 1. 绯荤粺鐢ㄦ埛
+ String userKey = "common:绯荤粺鐢ㄦ埛";
+ if (!itemMap.containsKey(userKey)) {
+ List<SysUser> users = sysUserMapper.selectUserListWithDetail();
+ itemMap.put(userKey, buildItem("common", "绯荤粺鐢ㄦ埛", 1, (int) users.size(),
+ "缂哄皯绯荤粺鐢ㄦ埛锛岃鍏堝湪銆愮郴缁熺鐞�-鐢ㄦ埛绠$悊銆戜腑娣诲姞鐢ㄦ埛"));
+ }
+
+ // 2. 鏈夎鑹茬殑鐢ㄦ埛
+ String userWithRoleKey = "common:鐢ㄦ埛瑙掕壊閰嶇疆";
+ if (!itemMap.containsKey(userWithRoleKey)) {
+ List<SysUser> users = sysUserMapper.selectUserListWithDetail();
+ long withRole = users.stream().filter(u -> u.getRoleNames() != null && !u.getRoleNames().isBlank()).count();
+ itemMap.put(userWithRoleKey, buildItem("common", "鐢ㄦ埛瑙掕壊閰嶇疆", 1, (int) withRole,
+ "娌℃湁鐢ㄦ埛鍒嗛厤瑙掕壊锛岃鍏堝湪銆愮郴缁熺鐞�-鐢ㄦ埛绠$悊銆戜腑涓虹敤鎴峰垎閰嶈鑹�"));
+ }
+
+ // 3. 鏈夐儴闂ㄧ殑鐢ㄦ埛
+ String userWithDeptKey = "common:鐢ㄦ埛閮ㄩ棬閰嶇疆";
+ if (!itemMap.containsKey(userWithDeptKey)) {
+ List<SysUser> users = sysUserMapper.selectUserListWithDetail();
+ long withDept = users.stream().filter(u -> u.getDeptNames() != null && !u.getDeptNames().isBlank()).count();
+ itemMap.put(userWithDeptKey, buildItem("common", "鐢ㄦ埛閮ㄩ棬閰嶇疆", 1, (int) withDept,
+ "娌℃湁鐢ㄦ埛鍒嗛厤閮ㄩ棬锛岃鍏堝湪銆愮郴缁熺鐞�-鐢ㄦ埛绠$悊銆戜腑涓虹敤鎴峰垎閰嶉儴闂�"));
+ }
}
private void addSalesChecks(Map<String, CheckItem> itemMap) {
@@ -133,6 +182,93 @@
}
}
+ private void addProductionChecks(Map<String, CheckItem> itemMap) {
+ // 1. 浜у搧瑙勬牸
+ String modelKey = "production:浜у搧瑙勬牸";
+ if (!itemMap.containsKey(modelKey)) {
+ long count = productModelMapper.selectCount(null);
+ itemMap.put(modelKey, buildItem("production", "浜у搧瑙勬牸", 1, (int) count,
+ "缂哄皯浜у搧瑙勬牸锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑涓轰骇鍝佹坊鍔犺鏍煎瀷鍙�"));
+ }
+
+ // 2. 宸ュ簭
+ String operationKey = "production:宸ュ簭";
+ if (!itemMap.containsKey(operationKey)) {
+ long count = technologyOperationMapper.selectCount(null);
+ itemMap.put(operationKey, buildItem("production", "宸ュ簭", 1, (int) count,
+ "缂哄皯宸ュ簭锛岃鍏堝湪銆愬伐鑹鸿璁�-宸ュ簭绠$悊銆戜腑鍒涘缓宸ュ簭"));
+ }
+
+ // 3. BOM
+ String bomKey = "production:BOM";
+ if (!itemMap.containsKey(bomKey)) {
+ long count = technologyBomMapper.selectCount(null);
+ itemMap.put(bomKey, buildItem("production", "BOM", 1, (int) count,
+ "缂哄皯BOM锛岃鍏堝湪銆愬伐鑹鸿璁�-BOM绠$悊銆戜腑鍒涘缓BOM"));
+ }
+
+ // 4. BOM浜у搧缁撴瀯
+ String bomStructureKey = "production:BOM浜у搧缁撴瀯";
+ if (!itemMap.containsKey(bomStructureKey)) {
+ long count = technologyBomStructureMapper.selectCount(null);
+ itemMap.put(bomStructureKey, buildItem("production", "BOM浜у搧缁撴瀯", 1, (int) count,
+ "缂哄皯BOM浜у搧缁撴瀯锛岃鍏堝湪銆愬伐鑹鸿璁�-BOM绠$悊銆戜腑涓築OM娣诲姞浜у搧缁撴瀯鑺傜偣"));
+ }
+
+ // 5. 宸ヨ壓璺嚎
+ String routingKey = "production:宸ヨ壓璺嚎";
+ if (!itemMap.containsKey(routingKey)) {
+ long count = technologyRoutingMapper.selectCount(null);
+ itemMap.put(routingKey, buildItem("production", "宸ヨ壓璺嚎", 1, (int) count,
+ "缂哄皯宸ヨ壓璺嚎锛岃鍏堝湪銆愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑鍒涘缓宸ヨ壓璺嚎"));
+ }
+
+ // 6. 宸ヨ壓璺嚎宸ュ簭
+ String routingOpKey = "production:宸ヨ壓璺嚎宸ュ簭";
+ if (!itemMap.containsKey(routingOpKey)) {
+ long count = technologyRoutingOperationMapper.selectCount(null);
+ itemMap.put(routingOpKey, buildItem("production", "宸ヨ壓璺嚎宸ュ簭", 1, (int) count,
+ "缂哄皯宸ヨ壓璺嚎宸ュ簭锛岃鍏堝湪銆愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑涓哄伐鑹鸿矾绾挎坊鍔犲伐搴�"));
+ }
+
+ // 7. 鍏宠仈鎬ф娴嬶細鏈変骇鍝佽鏍间絾鏃犲伐鑹鸿矾绾跨殑
+ String linkageKey = "production:浜у搧-宸ヨ壓璺嚎鍏宠仈";
+ if (!itemMap.containsKey(linkageKey)) {
+ long modelCount = productModelMapper.selectCount(null);
+ long routedCount = technologyRoutingMapper.selectCount(
+ new LambdaQueryWrapper<TechnologyRouting>()
+ .isNotNull(TechnologyRouting::getProductModelId)
+ .gt(TechnologyRouting::getProductModelId, 0));
+ itemMap.put(linkageKey, buildItem("production", "浜у搧-宸ヨ壓璺嚎鍏宠仈",
+ (int) Math.min(modelCount, 1), (int) routedCount,
+ "閮ㄥ垎浜у搧瑙勬牸鏈叧鑱斿伐鑹鸿矾绾匡紝璇峰厛鍦ㄣ�愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑涓轰骇鍝佽鏍煎垱寤哄伐鑹鸿矾绾�"));
+ }
+
+ // 8. 鍏宠仈鎬ф娴嬶細鏈夊伐鑹鸿矾绾夸絾鏃犲伐搴忕殑
+ String routingOpLinkKey = "production:宸ヨ壓璺嚎-宸ュ簭鍏宠仈";
+ if (!itemMap.containsKey(routingOpLinkKey)) {
+ long routingCount = technologyRoutingMapper.selectCount(null);
+ long routedOpCount = technologyRoutingOperationMapper.selectCount(
+ new LambdaQueryWrapper<TechnologyRoutingOperation>()
+ .gt(TechnologyRoutingOperation::getTechnologyRoutingId, 0));
+ itemMap.put(routingOpLinkKey, buildItem("production", "宸ヨ壓璺嚎-宸ュ簭鍏宠仈",
+ (int) Math.min(routingCount, 1), (int) routedOpCount,
+ "閮ㄥ垎宸ヨ壓璺嚎鏈坊鍔犲伐搴忥紝璇峰厛鍦ㄣ�愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑涓哄伐鑹鸿矾绾挎坊鍔犲伐搴�"));
+ }
+
+ // 9. 鍏宠仈鎬ф娴嬶細鏈塀OM浣嗘棤浜у搧缁撴瀯鐨�
+ String bomStructureLinkKey = "production:BOM-浜у搧缁撴瀯鍏宠仈";
+ if (!itemMap.containsKey(bomStructureLinkKey)) {
+ long bomCount = technologyBomMapper.selectCount(null);
+ long structureCount = technologyBomStructureMapper.selectCount(
+ new LambdaQueryWrapper<TechnologyBomStructure>()
+ .gt(TechnologyBomStructure::getBomId, 0));
+ itemMap.put(bomStructureLinkKey, buildItem("production", "BOM-浜у搧缁撴瀯鍏宠仈",
+ (int) Math.min(bomCount, 1), (int) structureCount,
+ "閮ㄥ垎BOM鏈坊鍔犱骇鍝佺粨鏋勶紝璇峰厛鍦ㄣ�愬伐鑹鸿璁�-BOM绠$悊銆戜腑涓築OM娣诲姞浜у搧缁撴瀯鑺傜偣"));
+ }
+ }
+
private CheckItem buildItem(String module, String itemName, int minRequired, int currentCount, String failMessage) {
CheckItem item = new CheckItem();
item.setModule(module);
--
Gitblit v1.9.3