feat(ticket): 优化工单信息获取功能
- 移除未读消息中工单项目统计相关代码 - 添加区域服务依赖注入和区域ID获取功能 - 实现多语言区域信息获取方法 - 在工单信息中添加区域ID和组件ID字段 - 重构工单控制器中的区域和公司名称获取逻辑 - 更新设备代理商名称获取方式
This commit is contained in:
parent
5e89b47d58
commit
76e3cd5c2d
|
|
@ -256,7 +256,7 @@ public class TicketController extends ControllerBase {
|
|||
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Long id) {
|
||||
TicketDTO ticket = ticketService.getDto(id);
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
|
||||
String areaName = "", companyName = "";
|
||||
String areaId = "", areaName = "", companyName = "";
|
||||
String userName, userAvatar;
|
||||
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
|
||||
if (StrUtil.equals(ticket.getUserPlatform(), "app")) {
|
||||
|
|
@ -265,24 +265,32 @@ public class TicketController extends ControllerBase {
|
|||
userAvatar = user.getAvatar();
|
||||
if (user.getType() == 0) {
|
||||
if (user.getIsPrimary()) {
|
||||
areaId = StrUtil.join(",", customerService.getAreaIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())));
|
||||
areaName = StrUtil.join(",", customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())));
|
||||
} else if (Objects.nonNull(user.getAreaId())) {
|
||||
AppArea area = appAreaService.getById(user.getAreaId());
|
||||
if (Objects.nonNull(area)) {
|
||||
areaId = String.valueOf(area.getId());
|
||||
areaName = area.getName();
|
||||
}
|
||||
}
|
||||
companyName = StrUtil.join(",", customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))
|
||||
.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList()));
|
||||
// companyName = StrUtil.join(",", customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))
|
||||
// .stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList()));
|
||||
} else if (user.getType() == 1) {
|
||||
areaName = gongfuTicketAreaService.getAreaName(ticket.getAreaId(), MultilingualUtil.getLanguage());
|
||||
companyName = device.getAgentName();
|
||||
// areaName = gongfuTicketAreaService.getAreaName(ticket.getAreaId(), MultilingualUtil.getLanguage());
|
||||
GongfuTicketArea area = gongfuTicketAreaService.getArea(ticket.getAreaId(), MultilingualUtil.getLanguage());
|
||||
if (Objects.nonNull(area)) {
|
||||
areaId = String.valueOf(area.getId());
|
||||
areaName = area.getName();
|
||||
}
|
||||
// companyName = device.getAgentName();
|
||||
}
|
||||
} else {
|
||||
AdminUser adminUser = adminUserService.getById(ticket.getUserId());
|
||||
userName = adminUser.getUserName();
|
||||
userAvatar = adminUser.getAvatar();
|
||||
}
|
||||
companyName = Objects.nonNull(device) ? device.getAgentName() : "";
|
||||
String handle = ticket.getHandle();
|
||||
if (StrUtil.isNotBlank(handle)) {
|
||||
List<AdminUser> adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList()));
|
||||
|
|
@ -304,16 +312,17 @@ public class TicketController extends ControllerBase {
|
|||
.setCreateUserName(userName)
|
||||
.setCreateUserAvatar(userAvatar)
|
||||
.setCreateTime(ticket.getCreateTime())
|
||||
.setAreaId(areaId)
|
||||
.setAreaName(areaName)
|
||||
.setSolveTime(ticket.getSolveTime())
|
||||
.setCompanyName(companyName)
|
||||
.setHandle(handle)
|
||||
.setComponentId(ticket.getComponentId())
|
||||
.setThroughput(ticket.getThroughput())
|
||||
.setSolution(ticket.getReason())
|
||||
.setCustomerName(ticket.getCustomerName())
|
||||
.setType(ticket.getType())
|
||||
.setEvaluate(getTicketEvaluate(ticket.getId()));
|
||||
|
||||
if (Objects.equals(ticket.getType(), 0)) {
|
||||
TBasePart part = partService.getByIdAndLanguage(Math.toIntExact(ticket.getComponentId()), MultilingualUtil.getLanguage());
|
||||
if (Objects.nonNull(part)) {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@ 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 {
|
||||
|
|
@ -15,5 +13,5 @@ public class AppNotReadMessageCountVO {
|
|||
*/
|
||||
private Integer count;
|
||||
|
||||
private List<AppNotReadTicketMessageCountVO> ticketItems;
|
||||
// private List<AppNotReadTicketMessageCountVO> ticketItems;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,10 @@ public class TicketInfoVO {
|
|||
//客户名称
|
||||
private String companyName;
|
||||
|
||||
//所属区域
|
||||
//所属区域id,多个时逗号分隔
|
||||
private String areaId;
|
||||
|
||||
//所属区域,多个时逗号分隔
|
||||
private String areaName;
|
||||
|
||||
//设备编号
|
||||
|
|
@ -78,6 +81,9 @@ public class TicketInfoVO {
|
|||
//质保期(月)
|
||||
private Integer warrantyMonth;
|
||||
|
||||
//问题部位id
|
||||
private Long componentId;
|
||||
|
||||
//问题部位
|
||||
private String component;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,4 +13,6 @@ import com.nflg.mobilebroken.repository.entity.GongfuTicketArea;
|
|||
public interface IGongfuTicketAreaService extends IService<GongfuTicketArea> {
|
||||
|
||||
String getAreaName(Long areaId, String language);
|
||||
|
||||
GongfuTicketArea getArea(Long areaId, String language);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,4 +32,6 @@ public interface ITBaseCustomerService extends IService<TBaseCustomer> {
|
|||
List<CompanySimpleVO> getSimpleCompanysFromAdmin(Integer userId);
|
||||
|
||||
Collection<String> getAreas(List<Integer> companyIds);
|
||||
|
||||
Collection<Integer> getAreaIds(List<Integer> companyIds);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ 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;
|
||||
|
|
@ -121,22 +120,29 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
|
|||
|
||||
@Override
|
||||
public AppNotReadMessageCountVO getNotReadMessageCount1(Integer userId, String from) {
|
||||
List<AppMessage> datas = lambdaQuery()
|
||||
// List<AppMessage> 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())
|
||||
// );
|
||||
return new AppNotReadMessageCountVO()
|
||||
.setCount(Math.toIntExact(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())
|
||||
.count())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,4 +33,20 @@ public class GongfuTicketAreaServiceImpl extends ServiceImpl<GongfuTicketAreaMap
|
|||
.orElse(new LanguageDataRequest().setLanguageValue(area.getName()))
|
||||
.getLanguageValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GongfuTicketArea getArea(Long areaId, String language) {
|
||||
GongfuTicketArea area = getById(areaId);
|
||||
if (Objects.isNull(area)) {
|
||||
return null;
|
||||
}
|
||||
area.setName(JSONUtil.toList(area.getLanguageData(), LanguageDataRequest.class)
|
||||
.stream()
|
||||
.filter(item -> item.getCode().equals(language))
|
||||
.findFirst()
|
||||
.orElse(new LanguageDataRequest().setLanguageValue(area.getName()))
|
||||
.getLanguageValue()
|
||||
);
|
||||
return area;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,18 +7,17 @@ import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
|||
import com.nflg.mobilebroken.common.pojo.vo.CompanySimpleVO;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseArea;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import com.nflg.mobilebroken.repository.mapper.TBaseCustomerMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -34,6 +33,9 @@ public class TBaseCustomerServiceImpl extends ServiceImpl<TBaseCustomerMapper, T
|
|||
@Resource
|
||||
private IAppUserService appUserService;
|
||||
|
||||
@Resource
|
||||
private ITBaseAreaService areaService;
|
||||
|
||||
public Page<TBaseCustomer> getList(@Param("page") Page<PageBaseQuery> page, @Param("query") PageBaseQuery query) {
|
||||
return this.getBaseMapper().getList(page, query);
|
||||
}
|
||||
|
|
@ -119,4 +121,23 @@ public class TBaseCustomerServiceImpl extends ServiceImpl<TBaseCustomerMapper, T
|
|||
.flatMap(name -> StrUtil.split(name, ",").stream())
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Integer> getAreaIds(List<Integer> companyIds) {
|
||||
Set<String> areaCodes = lambdaQuery()
|
||||
.eq(TBaseCustomer::getDelIs, 0)
|
||||
.eq(TBaseCustomer::getEnableState, 1)
|
||||
.in(TBaseCustomer::getId, companyIds)
|
||||
.list()
|
||||
.stream()
|
||||
.map(TBaseCustomer::getAreaCode)
|
||||
.collect(Collectors.toSet());
|
||||
return areaService.lambdaQuery()
|
||||
.eq(TBaseArea::getDelIs, 0)
|
||||
.in(TBaseArea::getAreaCode, areaCodes)
|
||||
.list()
|
||||
.stream()
|
||||
.map(TBaseArea::getId)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue