From 8865f971f82b5117fb472603efd88eb15e67d85d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?=
Date: Fri, 19 Dec 2025 14:01:11 +0800
Subject: [PATCH] =?UTF-8?q?feat(message):=20=E5=AE=9E=E7=8E=B0=E6=B6=88?=
=?UTF-8?q?=E6=81=AF=E6=9C=AA=E8=AF=BB=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- AdminMessage实体新增key字段用于唯一标识消息
- AdminMessageServiceImpl新增getNotReadMessageCount1方法,按key聚合未读消息
- AppMessageServiceImpl新增getNotReadMessageCount1方法,按ticketId聚合未读消息
- 新增AdminNotReadMessageCountVO和AdminNotReadTicketMessageCountVO数据结构
- 新增AppNotReadMessageCountVO和AppNotReadTicketMessageCountVO数据结构
- AdminMessageService和AppMessageService接口新增getNotReadMessageCount1方法声明
- Admin端和App端消息控制器新增获取未读消息数量接口getNotReadMessageCount1
- 修正工单解决方案相关消息的SubType枚举及接口调用
- 优化TicketSolutionServiceImpl中工单解决方案分组逻辑,改为按dictionaryItemId分组
---
.../admin/controller/MessageController.java | 11 +++++++
.../cfs/controller/MessageController.java | 11 +++++++
.../common/constant/MessageSubType.java | 5 ++-
.../pojo/vo/AdminNotReadMessageCountVO.java | 18 ++++++++++
.../vo/AdminNotReadTicketMessageCountVO.java | 18 ++++++++++
.../pojo/vo/AppNotReadMessageCountVO.java | 19 +++++++++++
.../vo/AppNotReadTicketMessageCountVO.java | 13 ++++++++
.../gongfu/controller/TicketController.java | 19 ++---------
.../repository/entity/AdminMessage.java | 11 +++++--
.../service/IAdminMessageService.java | 3 ++
.../service/IAppMessageService.java | 3 ++
.../service/impl/AdminMessageServiceImpl.java | 33 ++++++++++++++++---
.../service/impl/AppMessageServiceImpl.java | 27 ++++++++++++++-
.../impl/TicketSolutionServiceImpl.java | 6 ++--
14 files changed, 168 insertions(+), 29 deletions(-)
create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadMessageCountVO.java
create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadTicketMessageCountVO.java
create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadMessageCountVO.java
create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadTicketMessageCountVO.java
diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java
index b246cee9..b9c8a852 100644
--- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java
+++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java
@@ -9,6 +9,7 @@ import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.request.AdminMessageSearchRequest;
import com.nflg.mobilebroken.common.pojo.request.MessageConfigRequest;
import com.nflg.mobilebroken.common.pojo.vo.AdminMessageVO;
+import com.nflg.mobilebroken.common.pojo.vo.AdminNotReadMessageCountVO;
import com.nflg.mobilebroken.common.pojo.vo.MessageConfigVO;
import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.common.util.PageUtil;
@@ -158,6 +159,16 @@ public class MessageController extends ControllerBase {
return ApiResult.success(adminMessageService.getNotReadMessageCount(AdminUserUtil.getUserId()));
}
+ /**
+ * 获取未读消息数量(新)
+ * @return 未读消息数量
+ */
+ @GetMapping("getNotReadMessageCount1")
+ @ApiMark(moduleName = "消息管理", apiName = "获取未读消息数量1")
+ public ApiResult getNotReadMessageCount1() {
+ return ApiResult.success(adminMessageService.getNotReadMessageCount1(AdminUserUtil.getUserId()));
+ }
+
/**
* 获取消息配置
* @return 消息配置
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java
index 20da0433..7896cb1f 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java
@@ -6,7 +6,9 @@ import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.request.AppMessageSearchRequest;
import com.nflg.mobilebroken.common.pojo.request.MessageConfigRequest;
import com.nflg.mobilebroken.common.pojo.vo.AppMessageVO;
+import com.nflg.mobilebroken.common.pojo.vo.AppNotReadMessageCountVO;
import com.nflg.mobilebroken.common.pojo.vo.MessageConfigVO;
+import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.common.util.AppUserUtil;
import com.nflg.mobilebroken.repository.service.IAppMessageService;
import org.springframework.data.redis.core.HashOperations;
@@ -83,6 +85,15 @@ public class MessageController extends ControllerBase {
return ApiResult.success(appMessageService.getNotReadMessageCount(AppUserUtil.getUserId(),AppUserUtil.getFrom()));
}
+ /**
+ * 获取未读消息数量(新)
+ * @return 未读消息数量
+ */
+ @GetMapping("getNotReadMessageCount1")
+ public ApiResult getNotReadMessageCount1() {
+ return ApiResult.success(appMessageService.getNotReadMessageCount1(AdminUserUtil.getUserId(), AppUserUtil.getFrom()));
+ }
+
/**
* 获取消息配置
* @return 消息配置
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/MessageSubType.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/MessageSubType.java
index 519ce116..77b93874 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/MessageSubType.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/MessageSubType.java
@@ -38,7 +38,10 @@ public enum MessageSubType {
//派工单完成
DispatchComplate(14, "派工单完成"),
//派工单延期审核结果
- DispatchAuditResult(15, "派工单延期审核结果");
+ DispatchAuditResult(15, "派工单延期审核结果"),
+ //工单解决方案审核
+ TicketSolutionAuditResult(16, "工单解决方案审核结果"),
+ ;
private final Integer state;
private final String description;
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadMessageCountVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadMessageCountVO.java
new file mode 100644
index 00000000..8e890b6b
--- /dev/null
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadMessageCountVO.java
@@ -0,0 +1,18 @@
+package com.nflg.mobilebroken.common.pojo.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+public class AdminNotReadMessageCountVO {
+
+ /**
+ * 未读消息总数量
+ */
+ private Integer count;
+
+ private List items;
+}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadTicketMessageCountVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadTicketMessageCountVO.java
new file mode 100644
index 00000000..5d71bae7
--- /dev/null
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminNotReadTicketMessageCountVO.java
@@ -0,0 +1,18 @@
+package com.nflg.mobilebroken.common.pojo.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class AdminNotReadTicketMessageCountVO {
+
+ /**
+ * 来源,0:工单;1:代理商账户审核;2:派工单;3:工服工单
+ */
+ private Integer source;
+
+ private Long sourceId;
+
+ private Integer count;
+}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadMessageCountVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadMessageCountVO.java
new file mode 100644
index 00000000..5ad8e72c
--- /dev/null
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadMessageCountVO.java
@@ -0,0 +1,19 @@
+package com.nflg.mobilebroken.common.pojo.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+public class AppNotReadMessageCountVO {
+
+
+ /**
+ * 未读消息总数量
+ */
+ private Integer count;
+
+ private List ticketItems;
+}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadTicketMessageCountVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadTicketMessageCountVO.java
new file mode 100644
index 00000000..dc142ac1
--- /dev/null
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppNotReadTicketMessageCountVO.java
@@ -0,0 +1,13 @@
+package com.nflg.mobilebroken.common.pojo.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class AppNotReadTicketMessageCountVO {
+
+ private Long ticketId;
+
+ private Integer count;
+}
diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java
index 22900674..a5f61c53 100644
--- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java
+++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java
@@ -860,22 +860,7 @@ public class TicketController extends ControllerBase {
@PostMapping("saveSolutionMeasures")
@ApiMark(moduleName = "工单管理", apiName = "保存工单解决方案措施")
public ApiResult saveSolutionMeasures(@Valid @RequestBody SolutionMeasuresSaveRequest request) {
- GongfuTicket ticket = ticketSolutionService.saveSolutionMeasures1(request);
- List auditIds = deviceTypeService.getCqms(ticket.getDeviceNo());
- auditIds.forEach(uid -> {
- adminMessageService.add(
- new AdminMessage()
- .setNo(ticket.getNo())
- .setTitle(ticket.getTitle())
- .setUserId(uid)
- .setSourceId(ticket.getId())
- .setSource(3)
- .setType(MessageType.WorkOrderAssignment.getState())
- .setSubType(MessageSubType.TicketSolutionAudit.getState())
- .setIsRead(false)
- .setCreateTime(LocalDateTime.now())
- );
- });
+ ticketSolutionService.saveSolutionMeasures1(request);
return ApiResult.success();
}
@@ -896,7 +881,7 @@ public class TicketController extends ControllerBase {
.setSourceId(ticket.getId())
.setSource(3)
.setType(MessageType.WorkOrderAssignment.getState())
- .setSubType(MessageSubType.TicketSolutionAudit.getState())
+ .setSubType(MessageSubType.TicketSolutionAuditResult.getState())
.setIsRead(false)
.setCreateTime(LocalDateTime.now())
);
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java
index aebb1d52..3b92bcca 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java
@@ -1,6 +1,7 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
@@ -12,9 +13,8 @@ import java.time.LocalDateTime;
/**
*
- *
- *
*
+ *
* @author 代码生成器生成
* @since 2025
*/
@@ -73,4 +73,11 @@ public class AdminMessage implements Serializable {
* 创建时间
*/
private LocalDateTime createTime;
+
+ @TableField(exist = false)
+ private String key;
+
+ public String getKey() {
+ return userId + "|" + source + "|" + sourceId;
+ }
}
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java
index cbd3fd29..ad91b6bd 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.mobilebroken.common.pojo.request.AdminMessageSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.AdminMessageVO;
+import com.nflg.mobilebroken.common.pojo.vo.AdminNotReadMessageCountVO;
import com.nflg.mobilebroken.repository.entity.AdminMessage;
import java.util.List;
@@ -31,4 +32,6 @@ public interface IAdminMessageService extends IService {
Integer getNotReadMessageCount(Integer userId);
void remove(Integer source, Integer sourceId, Integer userId, Integer subType);
+
+ AdminNotReadMessageCountVO getNotReadMessageCount1(Integer userId);
}
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java
index fa83d3dd..5d5c41e7 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.mobilebroken.common.pojo.request.AppMessageSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.AppMessageVO;
+import com.nflg.mobilebroken.common.pojo.vo.AppNotReadMessageCountVO;
import com.nflg.mobilebroken.repository.entity.AppMessage;
import java.util.List;
@@ -29,4 +30,6 @@ public interface IAppMessageService extends IService {
void add(AppMessage message);
Integer getNotReadMessageCount(Integer userId,String from);
+
+ AppNotReadMessageCountVO getNotReadMessageCount1(Integer userId, String from);
}
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java
index 07c66d38..edb873d0 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.request.AdminMessageSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.AdminMessageVO;
+import com.nflg.mobilebroken.common.pojo.vo.AdminNotReadMessageCountVO;
+import com.nflg.mobilebroken.common.pojo.vo.AdminNotReadTicketMessageCountVO;
import com.nflg.mobilebroken.repository.entity.AdminMessage;
import com.nflg.mobilebroken.repository.mapper.AdminMessageMapper;
import com.nflg.mobilebroken.repository.service.IAdminMessageService;
@@ -16,12 +18,12 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
+import java.util.stream.Collectors;
/**
*
- * 服务实现类
+ * 服务实现类
*
- *
* @author 曹鹏飞
* @since 2025-01-23
*/
@@ -57,7 +59,7 @@ public class AdminMessageServiceImpl extends ServiceImpl()
.eq(AdminMessage::getIsRead, false)
.eq(AdminMessage::getSubType, message.getSubType())
@@ -72,8 +74,8 @@ public class AdminMessageServiceImpl extends ServiceImpl(1, num));
}
- private void setUnreadMessageCount(Integer userId){
- Integer count= Math.toIntExact(lambdaQuery()
+ private void setUnreadMessageCount(Integer userId) {
+ Integer count = Math.toIntExact(lambdaQuery()
.eq(AdminMessage::getIsRead, false)
.eq(AdminMessage::getUserId, userId)
.count());
@@ -98,4 +100,25 @@ public class AdminMessageServiceImpl extends ServiceImpl datas = lambdaQuery()
+ .eq(AdminMessage::getIsRead, false)
+ .eq(AdminMessage::getUserId, userId)
+ .list();
+ return new AdminNotReadMessageCountVO()
+ .setCount(datas.size())
+ .setItems(datas.stream()
+ .collect(Collectors.groupingBy(AdminMessage::getKey))
+ .values()
+ .stream()
+ .map(items -> new AdminNotReadTicketMessageCountVO()
+ .setSource(items.get(0).getSource())
+ .setSourceId(items.get(0).getSourceId())
+ .setCount(items.size())
+ )
+ .collect(Collectors.toList())
+ );
+ }
}
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java
index 78cc31a2..207f9c47 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java
@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.request.AppMessageSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.AppMessageVO;
+import com.nflg.mobilebroken.common.pojo.vo.AppNotReadMessageCountVO;
+import com.nflg.mobilebroken.common.pojo.vo.AppNotReadTicketMessageCountVO;
import com.nflg.mobilebroken.repository.entity.AppMessage;
import com.nflg.mobilebroken.repository.mapper.AppMessageMapper;
import com.nflg.mobilebroken.repository.service.IAdminUserService;
@@ -90,8 +92,10 @@ public class AppMessageServiceImpl extends ServiceImpl()
.eq(AppMessage::getIsRead, false)
.eq(AppMessage::getSubType, message.getSubType())
+ .eq(AppMessage::getTicketId, message.getTicketId())
.eq(AppMessage::getUserId, message.getUserId())
- .eq(AppMessage::getUserPlatform, message.getUserPlatform()));
+ .eq(AppMessage::getUserPlatform, message.getUserPlatform())
+ );
save(message);
setUnreadMessageCount(message.getUserId(), message.getUserPlatform());
}
@@ -114,4 +118,25 @@ public class AppMessageServiceImpl extends ServiceImpl datas = lambdaQuery()
+ .eq(AppMessage::getIsRead, false)
+ .eq(AppMessage::getUserId, userId)
+ .eq(AppMessage::getUserPlatform, from)
+ .list();
+ return new AppNotReadMessageCountVO()
+ .setCount(datas.size())
+ .setTicketItems(datas.stream()
+ .collect(Collectors.groupingBy(AppMessage::getTicketId))
+ .values()
+ .stream()
+ .map(items -> new AppNotReadTicketMessageCountVO()
+ .setTicketId(items.get(0).getTicketId())
+ .setCount(items.size())
+ )
+ .collect(Collectors.toList())
+ );
+ }
}
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java
index 909b2bac..6bb675c4 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketSolutionServiceImpl.java
@@ -65,7 +65,7 @@ public class TicketSolutionServiceImpl extends ServiceImpl solutions = lambdaQuery().eq(TicketSolution::getTicketId, ticketId).orderByAsc(TicketSolution::getId).list();
- Map> groupedSolutions = solutions.stream().collect(Collectors.groupingBy(TicketSolution::getDictionaryItemName, LinkedHashMap::new, Collectors.toList()));
+ Map> groupedSolutions = solutions.stream().collect(Collectors.groupingBy(TicketSolution::getDictionaryItemId, LinkedHashMap::new, Collectors.toList()));
SolutionMeasuresVO vo = new SolutionMeasuresVO();
if (SaTokenAdminUtil.isLogin()) {
if (ticket.getType() == 0) {
@@ -92,7 +92,7 @@ public class TicketSolutionServiceImpl extends ServiceImpl new SolutionMeasuresItemVO()
- .setName(ks.getKey())
+ .setName(ks.getValue().get(0).getDictionaryItemName())
.setItems(ks.getValue().stream().map(v -> new SolutionMeasuresDataItemVO()
.setId(Long.valueOf(v.getId()))
.setName(v.getDescription())
@@ -104,7 +104,7 @@ public class TicketSolutionServiceImpl extends ServiceImpl values = groupedSolutions.get(it.getName());
+ List values = groupedSolutions.get(it.getId());
if (CollectionUtil.isEmpty(values)) {
items.add(new SolutionMeasuresItemVO().setId(it.getId()).setName(it.getName()).setItems(Collections.emptyList()));
} else {