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 | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 158 insertions(+), 11 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 2112505..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
@@ -1,11 +1,9 @@
package org.jeecg.modules.demo.semanticword.controller;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+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;
@@ -17,10 +15,13 @@
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;
import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -41,7 +42,9 @@
public class SemanticWordController extends JeecgController<SemanticWord, ISemanticWordService> {
@Autowired
private ISemanticWordService semanticWordService;
-
+
+ @Autowired
+ private ISysUserService sysUserService;
/**
* 鍒嗛〉鍒楄〃鏌ヨ
*
@@ -58,15 +61,32 @@
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
- if (semanticWord.getCreateBy() != null && semanticWord.getCreateBy().equals("admin")) {
- semanticWord.setCreateBy(null);
- }
// 鑷畾涔夋煡璇㈣鍒�
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 鑷畾涔夊閫夌殑鏌ヨ瑙勫垯涓猴細LIKE_WITH_OR
customeRuleMap.put("status", QueryRuleEnum.LIKE_WITH_OR);
- QueryWrapper<SemanticWord> queryWrapper = QueryGenerator.initQueryWrapper(semanticWord, req.getParameterMap(),customeRuleMap);
+ QueryWrapper<SemanticWord> queryWrapper;
+ if (semanticWord.getCreateBy() != null && semanticWord.getCreateBy().equals("admin")) {
+ semanticWord.setCreateBy(null);
+ queryWrapper = QueryGenerator.initQueryWrapper(semanticWord, req.getParameterMap(),customeRuleMap);
+ }else if (semanticWord.getCreateBy() != null) {
+ QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+ String user = semanticWord.getCreateBy();
+ semanticWord.setCreateBy(null);
+ queryWrapper = QueryGenerator.initQueryWrapper(semanticWord, req.getParameterMap(), customeRuleMap);
+ sysUserQueryWrapper.eq("agent_sales", user);
+ List<SysUser> iPageResult = sysUserService.list(sysUserQueryWrapper);
+ List<String> name = new ArrayList<>();
+ for (SysUser sysUser : iPageResult) {
+ name.add(sysUser.getUsername());
+ }
+ name.add(user);
+ queryWrapper.in("create_by", name);
+ }else {
+ queryWrapper = QueryGenerator.initQueryWrapper(semanticWord, req.getParameterMap(),customeRuleMap);
+ }
+
if (semanticWord.getUser() != null && !semanticWord.getUser().equals("admin")) {
queryWrapper.eq("create_by", semanticWord.getUser());
}
@@ -76,6 +96,14 @@
queryWrapper.inSql(
"contract_id", // semantic_word琛ㄤ腑鍏宠仈contract鐨勫瓧娈�
"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();
@@ -124,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;
/**
@@ -140,11 +276,17 @@
if (semanticWord.getSemanticWordList().size() > 0) {
if (semanticWord.getContractId() != null) {
for (SemanticWord semanticWord1 : semanticWord.getSemanticWordList()) {
+ if (semanticWord1.getAcceptindicator() == null) {
+ return Result.error("璇箟璇嶏細"+semanticWord1.getWord()+"宸茶揪鎸囨爣鏈~鍐�!");
+ }
semanticWord1.setContractId(semanticWord.getContractId());
}
}
semanticWordService.saveBatch(semanticWord.getSemanticWordList());
return Result.OK("鎵归噺娣诲姞鎴愬姛锛�");
+ }
+ if (semanticWord.getAcceptindicator() == null){
+ return Result.error("璇箟璇嶏細"+semanticWord.getWord()+"宸茶揪鎸囨爣鏈~鍐�!");
}
semanticWordService.save(semanticWord);
@@ -162,6 +304,9 @@
@RequiresPermissions("semanticword:semantic_word:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody SemanticWord semanticWord) {
+ if (semanticWord.getStatus().equals("7")){
+ semanticWord.setDistributionTime(new Date());
+ }
semanticWordService.updateById(semanticWord);
return Result.OK("缂栬緫鎴愬姛!");
}
@@ -251,14 +396,16 @@
@Operation(summary = "璇箟璇�-鎸夋棩鏈熷垎缁勭粺璁�")
@GetMapping(value = "/countByDate")
public Result<List<Map<String, Object>>> countByCreateTimeGroupByDate(
- @RequestParam(name = "createBy", required = true) String createBy,
+ @RequestParam(name = "createBy", required = false) String createBy,
@RequestParam(name = "checkStartTime", required = false) String checkStartTime,
@RequestParam(name = "checkEndTime", required = false) String checkEndTime) {
try {
// 鏋勫缓鏌ヨ鏉′欢
QueryWrapper<SemanticWord> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("create_by", createBy);
+ if (createBy != null) {
+ queryWrapper.eq("create_by", createBy);
+ }
// 娣诲姞鏃堕棿鍖洪棿鏉′欢
if (checkStartTime != null && !checkStartTime.isEmpty()) {
--
Gitblit v1.8.0