diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index c4cc5a18..2c45598b 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -229,7 +229,7 @@ public class TicketController extends ControllerBase { } } if (CollectionUtil.isNotEmpty(item.getChildren())) { - item.getChildren().removeIf(child -> !child.getSelected()); + item.getChildren().removeIf(child -> !Objects.equals(child.getSelected(),true)); } }); vo.getServiceEvaluation().removeIf(item -> !item.getSelected()); @@ -246,10 +246,10 @@ public class TicketController extends ControllerBase { } } if (CollectionUtil.isNotEmpty(item.getChildren())) { - item.getChildren().removeIf(child -> !child.getSelected()); + item.getChildren().removeIf(child ->!Objects.equals(child.getSelected(),true)); } }); - vo.getExperienceEvaluation().removeIf(item -> !item.getSelected()); + vo.getExperienceEvaluation().removeIf(item -> !Objects.equals(item.getSelected(),true)); return new TicketEvaluateVO() .setScore(ticketEvaluate.getScore()) .setFeedback(ticketEvaluate.getFeedback()) @@ -290,6 +290,7 @@ public class TicketController extends ControllerBase { ticketChatService.addMessage(ticket.getId(), message); //推送消息 ssePushService.sendTicketMessageToApp(ticket.getId(),message); + ssePushService.sendTicketMessageToAdmin(ticket.getId(),message); return ApiResult.success(); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TestController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TestController.java index 5ffd75ad..5294ca20 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TestController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TestController.java @@ -1,16 +1,23 @@ package com.nflg.mobilebroken.cfs.controller; -import com.nflg.mobilebroken.cfs.publisher.TicketEventPublisher; +import cn.hutool.core.date.DatePattern; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; -import com.nflg.mobilebroken.common.util.MultilingualUtil; +import com.nflg.mobilebroken.repository.entity.AppUser; import com.nflg.mobilebroken.repository.entity.Ticket; +import com.nflg.mobilebroken.repository.service.IAppUserService; +import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import com.nflg.mobilebroken.repository.service.ITicketService; +import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.mail.MessagingException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; @RestController @Slf4j @@ -18,15 +25,38 @@ import javax.annotation.Resource; public class TestController extends ControllerBase { @Resource - private TicketEventPublisher ticketEventPublisher; + private IDictionaryItemTranslateService dictionaryItemTranslateService; @Resource private ITicketService ticketService; - @GetMapping("sss") - public ApiResult sss(){ - Ticket ticket =ticketService.getById(8); - ticketEventPublisher.publishTicketCreateEvent(ticket, MultilingualUtil.getLanguage(), MultilingualUtil.getZone()); + @Resource + private IAppUserService appUserService; + + @Resource + private EmailService emailService; + + @GetMapping("sendEmail") + public ApiResult sendEmail() throws MessagingException { + Ticket ticket =ticketService.getById(1); + AppUser appUser=appUserService.getById(ticket.getUserId()); + String subject=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_TITLE_TICKET_CREATE,Constant.DEFAULT_LANGUAGE_CODE); + String content=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY,Constant.DEFAULT_LANGUAGE_CODE) + .replace("${no}",ticket.getNo()) + .replace("${title}",ticket.getTitle()) + .replace("${createUser}",appUser.getName()) + .replace("${handleUser}","") + .replace("${createTime}",toTimeString(ticket.getCreateTime())) + .replace("${msg}",subject); + emailService.sendEmail("rakor@qq.com",subject,content); return ApiResult.success(); } + + private String toTimeString(LocalDateTime time){ +// return time.atZone(ZoneOffset.UTC) +// .withZoneSameInstant(ZoneId.of(zone)) +// .toLocalDateTime() +// .format(FORMATTER); + return time.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); + } } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java index 1cfac088..3ec4613b 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java @@ -189,7 +189,7 @@ public class TiketController extends ControllerBase { AppUser user = appUserService.getById(ticket.getUserId()); String areaName; if (user.getIsPrimary()){ - areaName=adminAreaService.getById(user.getAreaId()).getAreaName(); + areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); }else { areaName = appAreaService.getById(user.getAreaId()).getName(); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java index f966fa34..29a416be 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java @@ -18,8 +18,6 @@ import org.springframework.context.ApplicationEvent; import javax.mail.MessagingException; import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.List; @@ -124,9 +122,10 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo } private String toTimeString(LocalDateTime time){ - return time.atZone(ZoneOffset.UTC) - .withZoneSameInstant(ZoneId.of(zone)) - .toLocalDateTime() - .format(FORMATTER); +// return time.atZone(ZoneOffset.UTC) +// .withZoneSameInstant(ZoneId.of(zone)) +// .toLocalDateTime() +// .format(FORMATTER); + return time.format(FORMATTER); } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index acc6cab7..569f54f1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -119,7 +119,8 @@ public class TicketServiceImpl extends ServiceImpl impleme public Ticket assignmentTicket(AssignmentTicketRequest request) { Ticket ticket = getById(request.getTicketId()); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); - VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.PendingProcessing.getState())).throwMessage("工单状态异常"); + VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.PendingProcessing.getState())) + .throwMessage("非待处理状态不能分派工单"); List tickerMangagers = adminUserService.getTickerMangagers(); VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId()))) .throwMessage("你无权分派工单"); @@ -172,11 +173,11 @@ public class TicketServiceImpl extends ServiceImpl impleme public Ticket completeTicket(Integer id) { Ticket ticket=getById(id); VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState())) - .throwMessage("工单状态不允许完成"); + .throwMessage("非处理中状态不允许完成"); List tickerMangagers = adminUserService.getTickerMangagers(); tickerMangagers.addAll(Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).collect(Collectors.toList())); VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId()))) - .throwMessage("你无权添加处理人"); + .throwMessage("你无权完成工单"); ticket.setState(TicketState.ProcessingCompleted.getState()); ticket.setCurrentHandle(AdminUserUtil.getUserId()); ticket.setUpdateTime(LocalDateTime.now()); @@ -189,7 +190,7 @@ public class TicketServiceImpl extends ServiceImpl impleme Ticket ticket = getById(request.getTicketId()); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState())) - .throwMessage("工单状态不允许关闭"); + .throwMessage("非处理完成状态不允许关闭"); VUtils.trueThrowBusinessError(!ticketEvaluateService.lambdaQuery() .eq(TicketEvaluate::getTicketId, request.getTicketId()) .exists()) diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml index 6015b350..7188f084 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml @@ -24,7 +24,7 @@ SELECT au.id FROM t_base_position p INNER JOIN admin_user au ON au.title_id=p.id - WHERE p.position_code IN + WHERE au.state=1 AND au.is_del=0 AND p.position_code IN #{titleCode} diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index e6f43c77..214000d8 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -215,10 +215,13 @@