From b012b819cb8b2ce883aa68d0c179a156b000598e Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期四, 29 一月 2026 18:11:36 +0800
Subject: [PATCH] 添加状态:停止服务-cgf

---
 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/semanticword/controller/SemanticWordController.java |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 118 insertions(+), 0 deletions(-)

diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/semanticword/controller/SemanticWordController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/semanticword/controller/SemanticWordController.java
index 1391dbc..70f2a47 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/semanticword/controller/SemanticWordController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/semanticword/controller/SemanticWordController.java
@@ -3,6 +3,7 @@
 import java.util.*;
 
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import org.jeecg.common.api.vo.Result;
@@ -14,6 +15,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.demo.contract.entity.Contract;
 import org.jeecg.modules.demo.contract.entity.SemanticWord;
 import org.jeecg.modules.demo.contract.service.IContractService;
 import org.jeecg.modules.demo.contract.service.ISemanticWordService;
@@ -96,6 +98,14 @@
                     "SELECT id FROM contract WHERE customer_name = '" + customerName + "'"
             );
         }
+        String isDropService = semanticWord.getIsDropService();
+        if (customerName != null && !customerName.isEmpty()) {
+            // 鎷兼帴鍏宠仈鏉′欢锛歴emantic_word鍏宠仈contract锛宑ontract鍏宠仈customer锛岄�氳繃瀹㈡埛鍚嶇О杩囨护
+            queryWrapper.inSql(
+                    "contract_id",  // semantic_word琛ㄤ腑鍏宠仈contract鐨勫瓧娈�
+                    "SELECT id FROM contract WHERE is_drop_service = '" + isDropService + "'"
+            );
+        }
         String agentName = semanticWord.getAgentName();
         if (agentName != null && !agentName.isEmpty()) {
             // 鎷兼帴鍏宠仈鏉′欢锛歴emantic_word鍏宠仈contract锛宑ontract鍏宠仈customer锛岄�氳繃瀹㈡埛鍚嶇О杩囨护
@@ -142,6 +152,114 @@
         return Result.OK(pageList);
 	}
 
+
+     //@AutoLog(value = "璇箟璇�-鏌ヨ璇箟鎬婚噺")
+     @Operation(summary="璇箟璇�-鏌ヨ璇箟鎬婚噺")
+     @GetMapping(value = "/count")
+     public Result<IPage<SemanticWord>> queryPageList(Contract contract,
+                                                      SemanticWord semanticWord,
+                                                      @RequestParam(name="role", defaultValue="鏃�") String role,
+                                                      @RequestParam(name="user", defaultValue="鏃�") String user,
+                                                      HttpServletRequest req) {
+
+         // 鑷畾涔夋煡璇㈣鍒�
+         Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
+         if (contract.getCreateBy() != null) {
+             user = contract.getCreateBy();
+         }
+         // 鑷畾涔夊閫夌殑鏌ヨ瑙勫垯涓猴細LIKE_WITH_OR
+         customeRuleMap.put("reviewStatus", QueryRuleEnum.LIKE_WITH_OR);
+         QueryWrapper<Contract> queryWrapper = QueryGenerator.initQueryWrapper(contract, req.getParameterMap(),customeRuleMap,true);
+         if (contract.getAgentAuditorIsNull() != null) {
+             if (contract.getAgentAuditorIsNull().equals("false")) {
+                 queryWrapper.isNotNull("agents_name");
+             } else{
+                 queryWrapper.and(wrapper -> wrapper.isNull("agents_name").or().eq("agents_name", ""));
+
+             }
+         }
+         if (!user.equals("鏃�")){
+             QueryWrapper qw = new QueryWrapper<SysUser>();
+             qw.eq("id", user);
+             String userName = ((SysUser)((Page) sysUserService.queryPageList(req, qw, 1, 1).getResult()).getRecords().get(0)).getUsername();
+             queryWrapper.eq("create_by", userName);
+         }
+         if (role.equals("鏃�"));
+         else if (role.equals("1972228581703651330")){//閿�鍞�
+//        else{
+//            if (user.equals("鏃�")){
+//                return Result.error("璇疯緭鍏ラ攢鍞悕绉�");//閿�鍞牴鎹敤鎴风瓫閫�
+//            }
+             QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+             sysUserQueryWrapper.eq("agent_sales", user);
+             Result<IPage<SysUser>> iPageResult = sysUserService.queryPageList(req, sysUserQueryWrapper, 100, 1);
+             List<String> name = new ArrayList<>();
+             for (SysUser sysUser : iPageResult.getResult().getRecords()){
+                 name.add(sysUser.getUsername());
+             }
+             name.add(user);
+             queryWrapper.nested(wrapper -> {
+                 // 鍐呭眰绗竴涓潯浠讹細(create_by IN (name) AND review_status != 2)
+                 wrapper.nested(w1 -> w1.in("create_by", name).ne("review_status", 2));
+                 // 鍐呭眰 OR 鏉′欢锛�(create_by = 鏈�鍚庝竴涓猲ame AND review_status = 2)
+                 wrapper.or(w2 -> w2.eq("create_by", name.get(name.size()-1)).eq("review_status", 2));
+             });
+         }
+         if (role.equals("1972228688033452034")){//璐㈠姟
+             queryWrapper.ne("review_status", "8");
+         }
+         queryWrapper.orderBy(
+                 true,  // condition锛氭槸鍚﹀惎鐢ㄨ鎺掑簭锛坱rue=鍚敤锛�
+                 false, // isAsc锛氭槸鍚﹀崌搴忥紙false=闄嶅簭锛岃 1 鍦ㄥ墠銆�0 鍦ㄥ悗锛�
+                 "CASE WHEN review_status = 1 THEN 1 ELSE 0 END" // R column锛氳櫄鎷熸帓搴忓垪锛堢洿鎺ヤ紶 SQL 鐗囨锛�
+         );
+
+         queryWrapper.orderBy(
+                 true,  // condition锛氭槸鍚﹀惎鐢ㄨ鎺掑簭锛坱rue=鍚敤锛�
+                 false, // isAsc锛氭槸鍚﹀崌搴忥紙false=闄嶅簭锛岃 1 鍦ㄥ墠銆�0 鍦ㄥ悗锛�
+                 "CASE WHEN review_status = 2 THEN 1 ELSE 0 END" // R column锛氳櫄鎷熸帓搴忓垪锛堢洿鎺ヤ紶 SQL 鐗囨锛�
+         );
+
+         queryWrapper.orderBy(
+                 true,  // condition锛氭槸鍚﹀惎鐢ㄨ鎺掑簭锛坱rue=鍚敤锛�
+                 true, // isAsc锛氭槸鍚﹀崌搴忥紙false=闄嶅簭锛岃 1 鍦ㄥ墠銆�0 鍦ㄥ悗锛�
+                 "emergency_status" // R column锛氳櫄鎷熸帓搴忓垪锛堢洿鎺ヤ紶 SQL 鐗囨锛�
+         );
+
+         queryWrapper.orderBy(
+                 true,  // condition锛氭槸鍚﹀惎鐢ㄨ鎺掑簭锛坱rue=鍚敤锛�
+                 false, // isAsc锛氭槸鍚﹀崌搴忥紙false=闄嶅簭锛岃 1 鍦ㄥ墠銆�0 鍦ㄥ悗锛�
+                 "create_time" // R column锛氳櫄鎷熸帓搴忓垪锛堢洿鎺ヤ紶 SQL 鐗囨锛�
+         );
+
+         // ========== 鏍稿績淇敼閮ㄥ垎 ==========
+// 1. 鍙煡璇㈢鍚堟潯浠剁殑鍚堝悓ID锛堜紭鍖栨�ц兘锛岄伩鍏嶆煡璇㈠叏閲忓瓧娈碉級
+         queryWrapper.select("id"); // 鍙�夋嫨鍚堝悓ID瀛楁
+         List<Contract> contractList = contractService.list(queryWrapper);
+
+// 2. 缁熻semantic_word琛ㄧ殑璁板綍鏁�
+         long semanticWordCount = 0L;
+         if (!CollectionUtils.isEmpty(contractList)) {
+             // 鎻愬彇鎵�鏈夌鍚堟潯浠剁殑鍚堝悓ID
+             List<String> contractIds = new ArrayList<>();
+             for (Contract c : contractList) {
+                 contractIds.add(c.getId()); // 鍋囪鍚堝悓ID瀛楁鏄痠d锛岀被鍨嬩负Long
+             }
+
+             // 鏋勫缓semantic_word琛ㄧ殑鏌ヨ鏉′欢
+             QueryWrapper<SemanticWord> swQueryWrapper = new QueryWrapper<>();
+             // 鍋囪semantic_word琛ㄤ腑鍏宠仈鍚堝悓鐨勫瓧娈垫槸contract_id锛岃鏍规嵁瀹為檯琛ㄧ粨鏋勮皟鏁�
+             swQueryWrapper.in("contract_id", contractIds);
+
+             // 缁熻璁板綍鏁帮紙闇�瑕佹敞鍏emanticWord瀵瑰簲鐨凷ervice锛�
+             semanticWordCount = semanticWordService.count(swQueryWrapper);
+         }
+
+// 鏈�缁堢粨鏋滐細semanticWordCount 灏辨槸浣犻渶瑕佺殑鎬昏褰曟暟
+         System.out.println("semantic_word琛ㄦ�昏褰曟暟锛�" + semanticWordCount);
+         return Result.OK(semanticWordCount+"");
+     }
+
      @Autowired
      private IContractService contractService;
 	/**

--
Gitblit v1.8.0