From 0fd62b50091b8ffb6320dc025bbc0950a1960d85 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 18 六月 2026 11:12:49 +0800
Subject: [PATCH] 修改日期时区

---
 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