From 8daef9907f2e2899d6204258f55c4838b29e2ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 25 Nov 2025 16:12:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ticket):=20=E5=B0=86=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E7=9B=B8=E5=85=B3ID=E7=B1=BB=E5=9E=8B=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=B8=BALong=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=92=8C=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将AdminTicketVO、AssignmentTicketRequest等多处工单ID字段由Integer修改为Long类型,统一ID类型 - 修改GongfuTicketService及相关接口方法签名,ID参数改为Long类型,保证一致性 - 优化AppAreaServiceImpl代码格式及查询条件,改进父子节点的处理逻辑 - 修正GongfuDeviceMapper中getComponents方法参数由componentId改为modelNo,完善多语言支持 - 修正GongfuTicketMapper中权限查询逻辑,移除冗余条件 - 统一TicketFollowService中ticketId类型为Long,防止类型不匹配 - TicketMapper相关SQL使用视图v_device_part替代基础表,提高查询性能与维护性 - 调整Admin及CFS、Gongfu模块Controller中ticketId请求参数类型为Long - 完善工单详情中区域信息获取逻辑,兼容不同用户类型的区域名称显示 - 优化工单聊天记录及消息推送方法,ID参数统一为Long,保证跨端一致 - 删除部分无用import及代码注释,提升代码整洁度和可读性 --- .../admin/controller/TicketController.java | 10 +-- .../cfs/controller/TicketController.java | 4 +- .../pojo/request/AssignmentTicketRequest.java | 2 +- .../pojo/request/TicketHandleAddRequest.java | 2 +- .../pojo/request/TicketSearchRequest.java | 2 +- .../common/pojo/vo/AdminTicketVO.java | 2 +- .../mobilebroken/common/pojo/vo/TicketVO.java | 2 +- .../mobilebroken/common/util/AppUserUtil.java | 19 +++++- .../gongfu/controller/TicketController.java | 66 +++++++++++-------- .../repository/entity/AdminUser.java | 4 +- .../repository/entity/FileUploadRecord.java | 2 +- .../repository/mapper/GongfuDeviceMapper.java | 2 +- .../service/IGongfuTicketService.java | 10 +-- .../service/ITicketFollowService.java | 2 +- .../repository/service/ITicketService.java | 2 +- .../repository/service/TicketChatService.java | 2 +- .../service/impl/AppAreaServiceImpl.java | 47 +++++++------ .../service/impl/GongfuDeviceServiceImpl.java | 14 ++-- .../service/impl/GongfuTicketServiceImpl.java | 14 ++-- .../service/impl/TicketFollowServiceImpl.java | 2 +- .../service/impl/TicketServiceImpl.java | 9 ++- .../resources/mapper/GongfuDeviceMapper.xml | 7 +- .../resources/mapper/GongfuTicketMapper.xml | 2 +- .../main/resources/mapper/TicketMapper.xml | 22 +++---- 24 files changed, 141 insertions(+), 109 deletions(-) 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 fd31e9e5..d928a768 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 @@ -240,7 +240,7 @@ public class TicketController extends ControllerBase { **/ @PostMapping("unfollowTicket") public ApiResult unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId) { - ticketFollowService.unfollow(AdminUserUtil.getUserId(), Constant.FROM_ADMIN, ticketId); + ticketFollowService.unfollow(AdminUserUtil.getUserId(), Constant.FROM_ADMIN, Long.valueOf(ticketId)); return ApiResult.success(); } @@ -272,7 +272,7 @@ public class TicketController extends ControllerBase { @ApiMark(moduleName = "工单管理", apiName = "搜索工单") public ApiResult> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request) { return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> { - d.setEvaluate(getTicketEvaluateForList(d.getId())); + d.setEvaluate(getTicketEvaluateForList(Math.toIntExact(d.getId()))); return d; })); } @@ -382,7 +382,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("getTicketHandle") @ApiMark(moduleName = "工单管理", apiName = "获取工单处理人") - public ApiResult> getTicketHandle(@Valid @RequestParam @NotNull(message = "工单编号不能为空") Integer id) { + public ApiResult> getTicketHandle(@Valid @RequestParam @NotNull(message = "工单编号不能为空") Long id) { return ApiResult.success(ticketService.getTicketHandle(id)); } @@ -714,7 +714,7 @@ public class TicketController extends ControllerBase { public ApiResult getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { Integer userId = AdminUserUtil.getUserId(); MessageVO vo = new MessageVO(); - List messageVOS = ticketChatService.getMessages(ticketId, userId); + List messageVOS = ticketChatService.getMessages(Long.valueOf(ticketId), userId); vo.setMessages(messageVOS); String key = "chatMessage:readed:" + ticketId + ":admin:" + userId; Set readeds = stringRedisTemplate.opsForSet().members(key); @@ -1244,7 +1244,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("/getHandlers") @ApiMark(moduleName = "工单管理", apiName = "获取工单处理人") - public ApiResult> getHandlers(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult> getHandlers(@Valid @RequestParam @NotNull Long ticketId) { return ApiResult.success(ticketService.getTicketHandle(ticketId)); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java index d7a08c71..4393da57 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java @@ -352,7 +352,7 @@ public class TicketController extends ControllerBase { * @return 聊天记录 **/ @GetMapping("getChatMessages") - public ApiResult getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult getChatMessages(@Valid @RequestParam @NotNull Long ticketId) { Integer userId = AppUserUtil.getUserId(); MessageVO vo = new MessageVO(); List messageVOS = ticketChatService.getMessages(ticketId, userId); @@ -531,7 +531,7 @@ public class TicketController extends ControllerBase { * @param ticketId 工单编号 */ @GetMapping("/getHandlers") - public ApiResult> getHandlers(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult> getHandlers(@Valid @RequestParam @NotNull Long ticketId) { return ApiResult.success(ticketService.getTicketHandle(ticketId)); } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AssignmentTicketRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AssignmentTicketRequest.java index 5502ce1f..df5e9e21 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AssignmentTicketRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AssignmentTicketRequest.java @@ -10,7 +10,7 @@ public class AssignmentTicketRequest { //工单id @NotNull - private Integer ticketId; + private Long ticketId; //紧急程度,0:非紧急;1:普通;2:紧急 @NotNull diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketHandleAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketHandleAddRequest.java index 9b227f3f..0d2e48d5 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketHandleAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketHandleAddRequest.java @@ -11,7 +11,7 @@ public class TicketHandleAddRequest { //工单id @NotNull - private Integer ticketId; + private Long ticketId; //用户id列表 @NotEmpty diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java index 87b9e5f2..bb03ea1e 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java @@ -25,7 +25,7 @@ public class TicketSearchRequest extends PageRequest { private String deviceNo; //问题部位 - private Integer componentId; + private Long componentId; //工单状态 private Integer state; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java index 867801fb..03fb7173 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java @@ -18,7 +18,7 @@ public class AdminTicketVO { //工单id @IgnoreExport - private int id; + private Long id; //工单编号 @ExcelColumn("工单编号") diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketVO.java index 676c1b21..22fca7ee 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketVO.java @@ -13,7 +13,7 @@ import java.util.List; public class TicketVO { //工单id - private int id; + private Long id; //工单编号 private String no; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java index d64755d4..e3ee5f7f 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java @@ -6,6 +6,7 @@ import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.pojo.dto.UserDTO; import java.util.List; +import java.util.Objects; public class AppUserUtil { @@ -31,7 +32,11 @@ public class AppUserUtil { public static Boolean isPrimary() { VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError, "请重新登录"); - return (Boolean) SaTokenAppUtil.getExtra("isPrimary"); + Object type = SaTokenAppUtil.getExtra("isPrimary"); + if (Objects.isNull(type)) { + return false; + } + return (Boolean) type; } public static String getFrom() { @@ -44,7 +49,11 @@ public class AppUserUtil { */ public static Boolean isAgent() { VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError, "请重新登录"); - return 0 == ((NumberWithFormat) SaTokenAppUtil.getExtra("type")).intValue(); + Object type = SaTokenAppUtil.getExtra("type"); + if (Objects.isNull(type)) { + return false; + } + return 0 == ((NumberWithFormat) type).intValue(); } /** @@ -52,7 +61,11 @@ public class AppUserUtil { */ public static Boolean isEndUser() { VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError, "请重新登录"); - return 1 == ((NumberWithFormat) SaTokenAppUtil.getExtra("type")).intValue(); + Object type = SaTokenAppUtil.getExtra("type"); + if (Objects.isNull(type)) { + return false; + } + return 1 == ((NumberWithFormat) type).intValue(); } public static String getCustomerName() { 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 643f36c0..ea854d08 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 @@ -40,7 +40,6 @@ import org.xhtmlrenderer.pdf.ITextRenderer; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.IOException; @@ -132,6 +131,9 @@ public class TicketController extends ControllerBase { @Resource private IGongfuTicketAreaService ticketAreaService; + @Resource + private ITBaseAreaService baseAreaService; + /** * 获取问题类型 * @return 问题类型列表 @@ -233,7 +235,7 @@ public class TicketController extends ControllerBase { * @param ticketId 工单id **/ @PostMapping("unfollowTicket") - public ApiResult unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult unfollowTicket(@Valid @RequestParam @NotNull Long ticketId) { ticketFollowService.unfollow(AdminUserUtil.getUserId(), Constant.FROM_ADMIN, ticketId); return ApiResult.success(); } @@ -271,7 +273,7 @@ public class TicketController extends ControllerBase { })); } - private TicketEvaluateVO getTicketEvaluateForList(Integer ticketId) { + private TicketEvaluateVO getTicketEvaluateForList(Long ticketId) { TicketEvaluate ticketEvaluate = ticketEvaluateService.lambdaQuery().eq(TicketEvaluate::getTicketId, ticketId).one(); if (Objects.isNull(ticketEvaluate)) { return null; @@ -326,7 +328,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("getReason") @ApiMark(moduleName = "工单管理", apiName = "获取工单根本原因分析", isPublic = true) - public ApiResult getReason(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult getReason(@Valid @RequestParam @NotNull Long ticketId) { GongfuTicket ticket = ticketService.getById(ticketId); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); return ApiResult.success(ticket.getReason()); @@ -376,7 +378,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("getTicketHandle") @ApiMark(moduleName = "工单管理", apiName = "获取工单处理人") - public ApiResult> getTicketHandle(@Valid @RequestParam @NotNull(message = "工单编号不能为空") Integer id) { + public ApiResult> getTicketHandle(@Valid @RequestParam @NotNull(message = "工单编号不能为空") Long id) { return ApiResult.success(ticketService.getTicketHandle(id)); } @@ -408,8 +410,8 @@ public class TicketController extends ControllerBase { @PostMapping("completeTicket") @MethodInfoMark(value = "完成工单", menuName = "工单管理") @ApiMark(moduleName = "工单管理", apiName = "完成工单") - public ApiResult completeTicket(@Valid @RequestBody @NotEmpty List ids) { - for (Integer id : ids) { + public ApiResult completeTicket(@Valid @RequestBody @NotEmpty List ids) { + for (Long id : ids) { GongfuTicket ticket = ticketService.completeTicket(id); ticketEventPublisher.publishTicketCompleteEvent(ticket); ChatMessageDTO message = new ChatMessageDTO() @@ -420,10 +422,10 @@ public class TicketController extends ControllerBase { .setSenderName("服务助手") .setContent("工单已完成
工单已完成,如需补充信息,请重新打开工单,继续留言。") .setCreateTime(Instant.now()); - ticketChatService.addMessage(Long.valueOf(id), message); + ticketChatService.addMessage(id, message); //推送消息 - ssePushService.sendTicketMessageToAdmin(Long.valueOf(id), message); - ssePushService.sendTicketMessageToApp(Long.valueOf(id), message); + ssePushService.sendTicketMessageToAdmin(id, message); + ssePushService.sendTicketMessageToApp(id, message); } return ApiResult.success(); } @@ -435,8 +437,8 @@ public class TicketController extends ControllerBase { @PostMapping("rejectTicket") @MethodInfoMark(value = "驳回工单", menuName = "工单管理") @ApiMark(moduleName = "工单管理", apiName = "驳回工单") - public ApiResult rejectTicket(@Valid @RequestBody @NotEmpty List ids) { - for (Integer id : ids) { + public ApiResult rejectTicket(@Valid @RequestBody @NotEmpty List ids) { + for (Long id : ids) { GongfuTicket ticket = ticketService.rejectTicket(id); // ticketEventPublisher.publishTicketCompleteEvent(ticket); ChatMessageDTO message = new ChatMessageDTO() @@ -447,10 +449,10 @@ public class TicketController extends ControllerBase { .setSenderName("服务助手") .setContent("工单驳回
工单被驳回,请继续跟进处理。") .setCreateTime(Instant.now()); - ticketChatService.addMessage(Long.valueOf(id), message); + ticketChatService.addMessage(id, message); //推送消息 - ssePushService.sendTicketMessageToAdmin(Long.valueOf(id), message); - ssePushService.sendTicketMessageToApp(Long.valueOf(id), message); + ssePushService.sendTicketMessageToAdmin(id, message); + ssePushService.sendTicketMessageToApp(id, message); } return ApiResult.success(); } @@ -461,7 +463,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("exportPdf") @ApiMark(moduleName = "工单管理", apiName = "导出工单为pdf") - public void exportPdf(HttpServletResponse response, @Valid @RequestParam @NotBlank(message = "工单编号不能为空") String id) { + public void exportPdf(HttpServletResponse response, @Valid @RequestParam @NotNull(message = "工单编号不能为空") Long id) { GongfuTicket ticket = ticketService.getById(id); AppUser user = appUserService.getById(ticket.getUserId()); List companyIds = Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()); @@ -542,17 +544,27 @@ public class TicketController extends ControllerBase { * @return 工单详情 **/ @GetMapping("getTicket") - public ApiResult getTicket(@Valid @RequestParam @NotNull Integer id) { + public ApiResult getTicket(@Valid @RequestParam @NotNull Long id) { GongfuTicket ticket = ticketService.getById(id); AdminUser adminUser = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_ADMIN) ? adminUserService.getById(ticket.getUserId()) : null; AppUser user = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_APP) ? appUserService.getById(ticket.getUserId()) : null; String areaName = ""; - if (Objects.nonNull(user)) - if (user.getIsPrimary()) { - areaName = StrUtil.join(",", customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); - } else if (Objects.nonNull(user.getAreaId())) { - areaName = appAreaService.getById(user.getAreaId()).getName(); + if (Objects.nonNull(user)) { + if (user.getType() == 0) { + if (user.getIsPrimary()) { + areaName = StrUtil.join(",", customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); + } else if (Objects.nonNull(user.getAreaId())) { + areaName = appAreaService.getById(user.getAreaId()).getName(); + } + } else if (user.getType() == 1) { + if (Objects.nonNull(user.getAreaId())) { + TBaseArea area = baseAreaService.getById(user.getAreaId()); + if (Objects.nonNull(area)) { + areaName = area.getAreaName(); + } + } } + } // TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId())); DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo()); String warrantyStateDesc = ""; @@ -578,7 +590,7 @@ public class TicketController extends ControllerBase { } String area = ""; if (Objects.nonNull(ticket.getAreaId())) { - GongfuTicketArea area1 = ticketAreaService.lambdaQuery().likeLeft(GongfuTicketArea::getPath, ticket.getAreaId()).one(); + GongfuTicketArea area1 = ticketAreaService.lambdaQuery().likeRight(GongfuTicketArea::getPath, ticket.getAreaId()).one(); if (Objects.nonNull(area1)) { if (area1.getPath().contains(",")) { List ids = StrUtil.split(area1.getPath(), ","); @@ -688,7 +700,7 @@ public class TicketController extends ControllerBase { **/ @GetMapping("getChatMessages") @ApiMark(moduleName = "工单管理", apiName = "获取工单聊天记录") - public ApiResult getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult getChatMessages(@Valid @RequestParam @NotNull Long ticketId) { Integer userId = AdminUserUtil.getUserId(); MessageVO vo = new MessageVO(); List messageVOS = ticketChatService.getMessages(ticketId, userId); @@ -859,7 +871,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("/exportTicketExcel") @ApiMark(moduleName = "工单管理", apiName = "导出工单详情为excel") - public void exportExcel(HttpServletResponse response, @Valid @RequestParam @NotNull Integer ticketId) throws Exception { + public void exportExcel(HttpServletResponse response, @Valid @RequestParam @NotNull Long ticketId) throws Exception { GongfuTicket ticket = ticketService.getById(ticketId); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); Workbook workbook = new XSSFWorkbook(); @@ -1143,7 +1155,7 @@ public class TicketController extends ControllerBase { */ @GetMapping("/getHandlers") @ApiMark(moduleName = "工单管理", apiName = "获取工单处理人") - public ApiResult> getHandlers(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult> getHandlers(@Valid @RequestParam @NotNull Long ticketId) { return ApiResult.success(ticketService.getTicketHandle(ticketId)); } @@ -1318,7 +1330,7 @@ public class TicketController extends ControllerBase { * @return 用户列表 */ @GetMapping("getShengWangChannelUsers") - public ApiResult> getShengWangChannelUsers(Integer ticketId) throws IOException, InterruptedException { + public ApiResult> getShengWangChannelUsers(Long ticketId) throws IOException, InterruptedException { return ApiResult.success(shengWangService.getChannelUsers("ticket" + ticketId).getUsers()); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUser.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUser.java index 4211bfc2..d594a7d2 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUser.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUser.java @@ -125,11 +125,11 @@ public class AdminUser implements Serializable { * 是否是工服工单处理人 */ @TableField("is_gongfu_handler") - private boolean isGongFuHandler; + private boolean gongFuHandler; /** * 是否是工服用户 */ @TableField("is_gongfu") - private boolean isGongfu; + private boolean gongfu; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/FileUploadRecord.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/FileUploadRecord.java index 469060cc..55f0219b 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/FileUploadRecord.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/FileUploadRecord.java @@ -41,7 +41,7 @@ public class FileUploadRecord implements Serializable { private String fileType; /** - * 关联类型,0:工单,1:代理商,2:管理端账户;3:匿名工单,4:派工单;5:工服匿名工单 + * 关联类型,0:工单,1:代理商,2:管理端账户;3:匿名工单,4:派工单 */ private Byte source; diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/GongfuDeviceMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/GongfuDeviceMapper.java index 8c0ba6bc..e1083e68 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/GongfuDeviceMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/GongfuDeviceMapper.java @@ -43,7 +43,7 @@ public interface GongfuDeviceMapper extends BaseMapper { void taskWarrantyStateNotOutsideWithinWarranty(); - List getComponents(Integer componentId, String language); + List getComponents(String modelNo, String language); List getAgents(); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IGongfuTicketService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IGongfuTicketService.java index 339c8910..4f1fed73 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IGongfuTicketService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IGongfuTicketService.java @@ -28,7 +28,7 @@ public interface IGongfuTicketService extends IService { GongfuTicket assignmentTicket(AssignmentTicketRequest request); - GongfuTicket completeTicket(Integer id); + GongfuTicket completeTicket(Long id); // Ticket closeTicket(TicketCloseRequest request); @@ -40,19 +40,19 @@ public interface IGongfuTicketService extends IService { List getNonemergency(int days); - GongfuTicket revoked(Integer id); + GongfuTicket revoked(Long id); - GongfuTicket reopen(Integer id); + GongfuTicket reopen(Long id); GongfuTicket addTicketHandle(TicketHandleAddRequest request); List getNonComment(int days); - List getTicketHandle(Integer id); + List getTicketHandle(Long id); List getAdminFavorites(Integer userId, String from, Integer favoritesId); - GongfuTicket rejectTicket(Integer id); + GongfuTicket rejectTicket(Long id); boolean close(GongfuTicket ticket); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java index 020f4f29..437c3527 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java @@ -19,7 +19,7 @@ public interface ITicketFollowService extends IService { void follow(AdminFollowRequest request, Integer userId,String from); - void unfollow(Integer userId,String from, Integer ticketId); + void unfollow(Integer userId, String from, Long ticketId); void deleteFavorites(Integer userId,String from, Integer favoritesId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java index 40c8ed8c..9c7542e7 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java @@ -50,7 +50,7 @@ public interface ITicketService extends IService { List getNonComment(int days); - List getTicketHandle(Integer id); + List getTicketHandle(Long id); List getAdminFavorites(Integer userId,String from,Integer favoritesId); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java index 9aa4166e..be54ffb5 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java @@ -42,7 +42,7 @@ public class TicketChatService { mongoTemplate.save(ticketChatDTO); } - public List getMessages(Integer ticketId,Integer userId) { + public List getMessages(Long ticketId, Integer userId) { Query query = new Query(Criteria.where("ticketId").is(ticketId)); TicketChatDTO ticketChatDTO = mongoTemplate.findOne(query, TicketChatDTO.class); if (Objects.isNull(ticketChatDTO)) { diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java index d783ee3f..8e4316d3 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java @@ -29,9 +29,8 @@ import java.util.stream.Collectors; /** *

- * 服务实现类 + * 服务实现类 *

- * * @author 曹鹏飞 * @since 2025-01-13 */ @@ -43,12 +42,12 @@ public class AppAreaServiceImpl extends ServiceImpl impl @Override public boolean saveOrUpdate(AppArea entity) { - if (Objects.isNull(entity.getId()) || entity.getId()<=0){ + if (Objects.isNull(entity.getId()) || entity.getId() <= 0) { entity.setCreateBy(AppUserUtil.getUserName()); entity.setCreateById(AppUserUtil.getUserId()); entity.setCreateTime(LocalDateTime.now()); return save(entity); - }else { + } else { entity.setUpdateBy(AppUserUtil.getUserName()); entity.setUpdateTime(LocalDateTime.now()); return updateById(entity); @@ -57,26 +56,26 @@ public class AppAreaServiceImpl extends ServiceImpl impl @Override public IPage search(AreaSearchRequest request) { - if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)){ + if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)) { return new Page<>(request.getPage(), request.getPageSize()); } - if (AppUserUtil.isPrimary()){ + if (AppUserUtil.isEndUser() || AppUserUtil.isPrimary()) { request.setCreateBy(AppUserUtil.getUserId()); - }else { + } else { request.setCreateBy(appUserService.getPrimaryByCompanyId(String.valueOf(AppUserUtil.getCompanyIds().get(0))).getId()); } if (StrUtil.isBlank(request.getName()) && Objects.isNull(request.getEnabled())) { return getPage(request); - }else { + } else { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppArea::getCreateById, request.getCreateBy()); - queryWrapper.eq(Objects.nonNull(request.getEnabled()),AppArea::getEnable, request.getEnabled()); - queryWrapper.like(StrUtil.isNotBlank(request.getName()),AppArea::getName, request.getName()); + queryWrapper.eq(Objects.nonNull(request.getEnabled()), AppArea::getEnable, request.getEnabled()); + queryWrapper.like(StrUtil.isNotBlank(request.getName()), AppArea::getName, request.getName()); queryWrapper.orderByDesc(AppArea::getId); List list = baseMapper.selectList(queryWrapper); //找出非根节点 List roots = list.stream().filter(l -> Objects.equals(l.getParentId(), 0)).collect(Collectors.toList()); - List children = convert(CollectionUtil.subtractToList(list,roots)); + List children = convert(CollectionUtil.subtractToList(list, roots)); if (CollectionUtil.isEmpty(children)) { return convertToPage1(roots, request.getPage(), request.getPageSize()); } @@ -168,23 +167,23 @@ public class AppAreaServiceImpl extends ServiceImpl impl return page; } - private void getParent(AreaVO child,List datas){ - AppArea parent=lambdaQuery().eq(AppArea::getId, child.getParentId()).one(); - if (Objects.nonNull(parent)){ - if (datas.stream().noneMatch(i->i.getId().equals(parent.getId()))){ - AreaVO p=convert(parent); + private void getParent(AreaVO child, List datas) { + AppArea parent = lambdaQuery().eq(AppArea::getId, child.getParentId()).one(); + if (Objects.nonNull(parent)) { + if (datas.stream().noneMatch(i -> i.getId().equals(parent.getId()))) { + AreaVO p = convert(parent); datas.add(p); - getParent(p,datas); + getParent(p, datas); } } } - private AreaVO convert(AppArea area){ - return Convert.convert(AreaVO.class,area); + private AreaVO convert(AppArea area) { + return Convert.convert(AreaVO.class, area); } - private List convert(List areas){ - return Convert.toList(AreaVO.class,areas); + private List convert(List areas) { + return Convert.toList(AreaVO.class, areas); } private IPage getPage(AreaSearchRequest request) { @@ -193,7 +192,7 @@ public class AppAreaServiceImpl extends ServiceImpl impl page.setSize(request.getPageSize()); lambdaQuery() .eq(AppArea::getParentId, 0) - .eq(AppArea::getCreateById,request.getCreateBy()) + .eq(AppArea::getCreateById, request.getCreateBy()) .eq(Objects.nonNull(request.getEnabled()), AppArea::getEnable, request.getEnabled()) .orderByAsc(AppArea::getId) .page(page); @@ -208,8 +207,8 @@ public class AppAreaServiceImpl extends ServiceImpl impl } private List getChildren(Integer parentId, Boolean enable) { - List datas=convert(lambdaQuery() - .eq(AppArea::getParentId,parentId) + List datas = convert(lambdaQuery() + .eq(AppArea::getParentId, parentId) .eq(Objects.nonNull(enable), AppArea::getEnable, enable) .orderByAsc(AppArea::getId) .list()); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDeviceServiceImpl.java index 7655de69..d03f0606 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDeviceServiceImpl.java @@ -10,6 +10,7 @@ import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceVO; import com.nflg.mobilebroken.common.util.AppUserUtil; +import com.nflg.mobilebroken.common.util.MultilingualUtil; import com.nflg.mobilebroken.repository.entity.GongfuDevice; import com.nflg.mobilebroken.repository.mapper.GongfuDeviceMapper; import com.nflg.mobilebroken.repository.service.IGongfuDeviceService; @@ -17,6 +18,8 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; +import java.util.Optional; import java.util.Set; /** @@ -31,12 +34,11 @@ public class GongfuDeviceServiceImpl extends ServiceImpl getTicketHandle(Integer id) { + public List getTicketHandle(Long id) { GongfuTicket ticket = lambdaQuery().select(GongfuTicket::getHandle, GongfuTicket::getId).eq(GongfuTicket::getId, id).one(); List handles = StrUtil.split(ticket.getHandle(), ",").stream().map(Integer::parseInt).collect(Collectors.toList()); if (CollectionUtil.isEmpty(handles)) { @@ -389,7 +389,7 @@ public class GongfuTicketServiceImpl extends ServiceImpl() .eq(TicketFollow::getTicketId, ticketId) 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 d8f8d163..65c8856e 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 @@ -364,9 +364,14 @@ public class TicketServiceImpl extends ServiceImpl impleme } @Override - public List getTicketHandle(Integer id) { + public List getTicketHandle(Long id) { Ticket ticket = lambdaQuery().select(Ticket::getHandle, Ticket::getId).eq(Ticket::getId, id).one(); - List handles = StrUtil.split(ticket.getHandle(), ",").stream().map(Integer::parseInt).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); + List handles = StrUtil.split(ticket.getHandle(), ",") + .stream() + .filter(StrUtil::isNotBlank) + .map(Integer::parseInt) + .collect(Collectors.toList()); if (CollectionUtil.isEmpty(handles)) { return Collections.emptyList(); } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml index bd44ebe4..ab36859d 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/GongfuDeviceMapper.xml @@ -104,9 +104,10 @@ @@ -195,7 +195,7 @@ LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1 LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auh ON t.current_handle=auh.id - LEFT JOIN t_base_part p ON t.component_id=p.id + LEFT JOIN v_device_part p ON t.component_id=p.id ORDER BY t.state,t.id DESC @@ -218,7 +218,7 @@ LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auh ON t.current_handle=auh.id - LEFT JOIN t_base_part p ON t.component_id=p.id + LEFT JOIN v_device_part p ON t.component_id=p.id ORDER BY t.state,t.id DESC @@ -240,7 +240,7 @@ LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auh ON t.current_handle=auh.id - LEFT JOIN t_base_part p ON t.component_id=p.id + LEFT JOIN v_device_part p ON t.component_id=p.id ORDER BY t.state,t.id DESC @@ -276,7 +276,7 @@ LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auh ON t.current_handle=auh.id - LEFT JOIN t_base_part p ON t.component_id=p.id + LEFT JOIN v_device_part p ON t.component_id=p.id ORDER BY t.state,t.id DESC