diff --git a/nflg-mobilebroken-admin/pom.xml b/nflg-mobilebroken-admin/pom.xml
index 5a18c8dd..4f88735a 100644
--- a/nflg-mobilebroken-admin/pom.xml
+++ b/nflg-mobilebroken-admin/pom.xml
@@ -67,7 +67,7 @@
ognl
ognl
- 3.4.3
+ 3.1.28
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 d928a768..df53a57e 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
@@ -372,6 +372,9 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToApp(Long.valueOf(ticket.getId()), message);
ssePushService.sendTicketMessageToAdmin(Long.valueOf(ticket.getId()), message);
+ request.getUserIds().forEach(userId -> {
+ uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), Constant.FROM_ADMIN, userId, "分派工单");
+ });
return ApiResult.success();
}
@@ -430,6 +433,10 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToAdmin(Long.valueOf(id), message);
ssePushService.sendTicketMessageToApp(Long.valueOf(id), message);
+ uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
+ deviceTypeService.getCqmsByDeviceType(ticket.getDeviceNo()).forEach(cqm -> {
+ uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), Constant.FROM_ADMIN, cqm, "工单已完成");
+ });
}
return ApiResult.success();
}
@@ -457,6 +464,7 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToAdmin(Long.valueOf(id), message);
ssePushService.sendTicketMessageToApp(Long.valueOf(id), message);
+ uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
}
return ApiResult.success();
}
@@ -1288,6 +1296,8 @@ public class TicketController extends ControllerBase {
.setTitle("视频通话")
.setContent(adminUser.getUserName() + "请求与您视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
+ .setContent(adminUser.getUserName() + "请求与您视频通话")
.setTicketId(Long.valueOf(ticketId))
.setUserId(adminUser.getId())
.setUserName(adminUser.getUserName())
@@ -1331,6 +1341,8 @@ public class TicketController extends ControllerBase {
.setTitle("视频通话")
.setContent(adminUser.getUserName() + "请求与您视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
+ .setContent(adminUser.getUserName() + "请求与您视频通话")
.setTicketId(request.getTicketId())
.setUserId(adminUser.getId())
.setUserName(adminUser.getUserName())
@@ -1388,6 +1400,7 @@ public class TicketController extends ControllerBase {
.setSendData(new UniPushMessageBody()
.setTitle("视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
.setTicketId(Long.valueOf(ticketId))
.setUserId(AdminUserUtil.getUserId())
.setCategory("ticketCallJoined")
@@ -1481,6 +1494,7 @@ public class TicketController extends ControllerBase {
.setSendData(new UniPushMessageBody()
.setTitle("视频通话结束")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话结束")
.setTicketId(request.getTicketId())
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1)))
.setCategory("ticketCallEnd")
diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java
index 033952fb..ac7a70d9 100644
--- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java
+++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TranslateController.java
@@ -5,10 +5,7 @@ import com.nflg.mobilebroken.common.pojo.request.TranslateWordRequest;
import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.starter.service.ITranslate;
import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
@@ -42,7 +39,7 @@ public class TranslateController extends ControllerBase{
* @return 翻译结果
*/
@PostMapping("deepseek")
- public ApiResult deepseek(@RequestBody String text) {
+ public ApiResult deepseek(@RequestParam String text) {
return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", AdminUserUtil.getLanguageName(), "text"));
}
}
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 365fc47a..567942bc 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
@@ -480,6 +480,7 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToAdmin(id, message);
ssePushService.sendTicketMessageToApp(id, message);
+ uniPushService.sendTodoMessageFromApp(ticket.getId(), ticket.getCurrentHandle(), "工单被重启");
return ApiResult.success();
}
@@ -571,6 +572,8 @@ public class TicketController extends ControllerBase {
.setTitle("视频通话")
.setContent(appUser.getName() + "请求与您视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
+ .setContent(appUser.getName() + "请求与您视频通话")
.setTicketId(ticketId)
.setUserId(appUser.getId())
.setUserName(appUser.getName())
@@ -609,6 +612,7 @@ public class TicketController extends ControllerBase {
.setSendData(new UniPushMessageBody()
.setTitle("视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
.setTicketId(ticketId)
.setUserId(AppUserUtil.getUserId())
.setCategory("ticketCallJoined")
@@ -635,6 +639,7 @@ public class TicketController extends ControllerBase {
.setSendData(new UniPushMessageBody()
.setTitle("视频通话结束")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话结束")
.setTicketId(request.getTicketId())
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1)))
.setCategory("ticketCallEnd")
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java
index 7606a3f6..1cdd983e 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TranslateController.java
@@ -4,8 +4,8 @@ import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.util.AppUserUtil;
import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate;
import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@@ -26,7 +26,7 @@ public class TranslateController extends ControllerBase {
* @return 翻译结果
*/
@PostMapping("deepseek")
- public ApiResult deepseek(@RequestBody String text) {
- return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", AppUserUtil.getLanguageName(), "html"));
+ public ApiResult deepseek(@RequestParam String text) {
+ return ApiResult.success(deepSeekTranslate.translateWord(text, "auto", AppUserUtil.getLanguageName(), "text"));
}
}
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/GongFuTicketCreateEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/GongFuTicketCreateEvent.java
index 7eaf8c02..6f63ecb5 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/GongFuTicketCreateEvent.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/GongFuTicketCreateEvent.java
@@ -21,10 +21,7 @@ import org.springframework.context.ApplicationEvent;
import javax.mail.MessagingException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@@ -63,6 +60,9 @@ public class GongFuTicketCreateEvent extends ApplicationEvent implements Applica
if (Objects.equals(ticket.getState(), TicketState.PendingProcessing.getState())) {
sendUserMessage();
sendEmail();
+ } else if (Objects.equals(ticket.getState(), TicketState.Processing.getState())) {
+ sendUserMessage1();
+ sendEmail1();
}
}
@@ -71,22 +71,41 @@ public class GongFuTicketCreateEvent extends ApplicationEvent implements Applica
List cqms = deviceType1Service.getCqms(ticket.getDeviceNo());
if (CollectionUtil.isEmpty(cqms)) {
log.error("该设备尚未设置服务经理:{}", ticket.getDeviceNo());
- } else {
- List cqmUsers = adminUserService.listByIds(cqms);
- if (CollectionUtil.isNotEmpty(cqmUsers)) {
- cqmUsers.forEach(c -> adminMessageService.add(
- new AdminMessage()
- .setNo(ticket.getNo())
- .setTitle(ticket.getTitle())
- .setUserId(c.getId())
- .setSourceId(ticket.getId())
- .setSource(3)
- .setType(MessageType.WorkOrderAssignment.getState())
- .setSubType(MessageSubType.TicketToBeAssigned.getState())
- .setIsRead(false)
- .setCreateTime(LocalDateTime.now()))
- );
- }
+ return;
+ }
+ List cqmUsers = adminUserService.listByIds(cqms);
+ if (CollectionUtil.isNotEmpty(cqmUsers)) {
+ cqmUsers.forEach(c -> adminMessageService.add(
+ new AdminMessage()
+ .setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
+ .setUserId(c.getId())
+ .setSourceId(ticket.getId())
+ .setSource(3)
+ .setType(MessageType.WorkOrderAssignment.getState())
+ .setSubType(MessageSubType.TicketToBeAssigned.getState())
+ .setIsRead(false)
+ .setCreateTime(LocalDateTime.now()))
+ );
+ }
+ }
+
+ private void sendUserMessage1() {
+ //我的待办
+ List handlers = adminUserService.listByIds(Collections.singleton(StrUtil.splitToLong(ticket.getHandle(), ",")));
+ if (CollectionUtil.isNotEmpty(handlers)) {
+ handlers.forEach(c -> adminMessageService.add(
+ new AdminMessage()
+ .setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
+ .setUserId(c.getId())
+ .setSourceId(ticket.getId())
+ .setSource(3)
+ .setType(MessageType.WorkOrderAssignment.getState())
+ .setSubType(MessageSubType.TicketAssignment.getState())
+ .setIsRead(false)
+ .setCreateTime(LocalDateTime.now()))
+ );
}
}
@@ -120,6 +139,31 @@ public class GongFuTicketCreateEvent extends ApplicationEvent implements Applica
}
}
+ private void sendEmail1() {
+ try {
+ String tickerUserName;
+ if (StrUtil.equals(ticket.getUserPlatform(), "app")) {
+ AppUser appUser = appUserService.getById(ticket.getUserId());
+ tickerUserName = appUser.getName();
+ } else {
+ AdminUser adminUser = adminUserService.getById(ticket.getUserId());
+ tickerUserName = adminUser.getUserName();
+ }
+ String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_TICKET_ASSIGNED, language);
+ String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY, language)
+ .replace("${no}", ticket.getNo())
+ .replace("${title}", ticket.getTitle())
+ .replace("${createUser}", tickerUserName)
+ .replace("${handleUser}", "")
+ .replace("${createTime}", toTimeString(ticket.getCreateTime()))
+ .replace("${msg}", subject);
+ List handlers = adminUserService.listByIds(Collections.singleton(StrUtil.splitToLong(ticket.getHandle(), ",")));
+ sendEmail(handlers.stream().map(AdminUser::getEmail).collect(Collectors.toSet()), subject, content);
+ } catch (Exception ex) {
+ log.error("邮件发送失败", ex);
+ }
+ }
+
private void sendEmail(Set emails, String subject, String content) throws MessagingException {
if (CollectionUtil.isNotEmpty(emails)) {
for (String email : emails) {
@@ -129,10 +173,6 @@ public class GongFuTicketCreateEvent extends ApplicationEvent implements Applica
}
private String toTimeString(LocalDateTime time) {
-// return time.atZone(ZoneOffset.UTC)
-// .withZoneSameInstant(ZoneId.of(zone))
-// .toLocalDateTime()
-// .format(FORMATTER);
return time.format(FORMATTER);
}
}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java
index cfcd7390..ef478433 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java
@@ -21,4 +21,8 @@ public class UniPushMessageCallPayload {
private String from;
private String category;
+
+ private String title;
+
+ private String content;
}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/IdPostRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/IdPostRequest.java
index 16ea6fd3..ef0fe797 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/IdPostRequest.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/IdPostRequest.java
@@ -12,5 +12,5 @@ public class IdPostRequest {
* id集合
*/
@NotEmpty
- private List ids;
+ private List ids;
}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java
index 9a70c4a9..773e0433 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java
@@ -43,6 +43,8 @@ public class DeviceInfoVO {
//代理商名称
private String agentName;
+ private String agentCode;
+
// @JsonIgnore
// private Integer componentId;
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java
index ff6b68a6..5d939b3c 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java
@@ -74,8 +74,13 @@ public class TicketPdfVO {
return TicketState.findByValue(state).getDescription();
}
- //设备地址
+ /**
+ * 设备地址
+ */
private String deviceAddress;
+ //区域
+ private String ticketArea;
+
private List measures;
}
diff --git a/nflg-mobilebroken-gongfu/pom.xml b/nflg-mobilebroken-gongfu/pom.xml
index 9eb2e508..98b85e0b 100644
--- a/nflg-mobilebroken-gongfu/pom.xml
+++ b/nflg-mobilebroken-gongfu/pom.xml
@@ -67,7 +67,7 @@
ognl
ognl
- 3.4.3
+ 3.1.28
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 315beb77..b718c44c 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
@@ -365,6 +365,9 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
+ request.getUserIds().forEach(userId -> {
+ uniPushService.sendTodoMessageFromAdmin(ticket.getId(), Constant.FROM_ADMIN, userId, "分派工单");
+ });
return ApiResult.success();
}
@@ -423,6 +426,10 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToAdmin(id, message);
ssePushService.sendTicketMessageToApp(id, message);
+ uniPushService.sendTodoMessageFromAdmin(ticket.getId(), ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
+ deviceTypeService.getCqms(ticket.getDeviceNo()).forEach(cqm -> {
+ uniPushService.sendTodoMessageFromAdmin(ticket.getId(), Constant.FROM_ADMIN, cqm, "工单已完成");
+ });
}
return ApiResult.success();
}
@@ -450,6 +457,7 @@ public class TicketController extends ControllerBase {
//推送消息
ssePushService.sendTicketMessageToAdmin(id, message);
ssePushService.sendTicketMessageToApp(id, message);
+ uniPushService.sendTodoMessageFromAdmin(ticket.getId(), Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
}
return ApiResult.success();
}
@@ -463,9 +471,25 @@ public class TicketController extends ControllerBase {
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());
- List companys = customerService.listByIds(companyIds);
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
+ String comnpanyName = "";
+ if (user.getType() == 0) {
+ List companyIds = Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList());
+ List companys = customerService.listByIds(companyIds);
+ comnpanyName = StrUtil.join(",", companys.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList()));
+ } else {
+ TBaseCustomer customer = customerService.lambdaQuery().eq(TBaseCustomer::getAgencyCompanyCode, device.getAgentCode()).one();
+ if (Objects.nonNull(customer)) {
+ comnpanyName = customer.getAgencyCompanyName();
+ }
+ }
+ String areaName = "";
+ if (Objects.nonNull(ticket.getAreaId())) {
+ GongfuTicketArea ticketArea = ticketAreaService.getById(ticket.getAreaId());
+ if (Objects.nonNull(ticketArea)) {
+ areaName = ticketArea.getName();
+ }
+ }
String handle = ticket.getHandle();
if (StrUtil.isNotBlank(handle)) {
List adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList()));
@@ -495,12 +519,12 @@ public class TicketController extends ControllerBase {
.setState(ticket.getState())
.setCreateUserName(user.getName())
.setCreateTime(DateTimeUtil.format(ticket.getCreateTime()))
- .setCompanyName(StrUtil.join(",", companys.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())))
+ .setCompanyName(comnpanyName)
.setUrgency(ticket.getUrgency())
.setUpdateTime(DateTimeUtil.format(ticket.getUpdateTime()))
.setHandleUserName(handle)
.setReason(ticket.getReason())
- .setDeviceAddress(ticket.getDeviceAddress())
+ .setTicketArea(areaName)
.setImages(images)
// .setFiles(files)
.setMeasures(ticketSolutionService.getSolutionMeasures(ticket.getId()).getMeasures());
@@ -1193,6 +1217,8 @@ public class TicketController extends ControllerBase {
.setTitle("视频通话")
.setContent(adminUser.getUserName() + "请求与您视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
+ .setContent(adminUser.getUserName() + "请求与您视频通话")
.setTicketId(ticketId)
.setUserId(adminUser.getId())
.setUserName(adminUser.getUserName())
@@ -1236,6 +1262,8 @@ public class TicketController extends ControllerBase {
.setTitle("视频通话")
.setContent(adminUser.getUserName() + "请求与您视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
+ .setContent(adminUser.getUserName() + "请求与您视频通话")
.setTicketId(request.getTicketId())
.setUserId(adminUser.getId())
.setUserName(adminUser.getUserName())
@@ -1275,6 +1303,7 @@ public class TicketController extends ControllerBase {
.setSendData(new UniPushMessageBody()
.setTitle("视频通话")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话")
.setTicketId(ticketId)
.setUserId(AdminUserUtil.getUserId())
.setCategory("ticketCallJoined")
@@ -1301,6 +1330,7 @@ public class TicketController extends ControllerBase {
.setSendData(new UniPushMessageBody()
.setTitle("视频通话结束")
.setPayload(new UniPushMessageCallPayload()
+ .setTitle("视频通话结束")
.setTicketId(request.getTicketId())
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1)))
.setCategory("ticketCallEnd")
diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/DeviceDetailResultVO.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/DeviceDetailResultVO.java
index a49a7b5b..3cb6b559 100644
--- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/DeviceDetailResultVO.java
+++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/vo/DeviceDetailResultVO.java
@@ -1,10 +1,144 @@
package com.nflg.mobilebroken.gongfu.pojo.vo;
-import com.nflg.mobilebroken.repository.entity.Device;
import lombok.Data;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
@Data
-public class DeviceDetailResultVO extends Device {
+public class DeviceDetailResultVO {
+
+ private Long id;
+
+ /**
+ * 设备编号
+ */
+ private String deviceNo;
+
+ /**
+ * 设备名称
+ */
+ private String deviceName;
+
+ /**
+ * 设备类型
+ */
+ private String deviceType;
+
+ /**
+ * 设备类型细分
+ */
+ private String deviceTypeSub;
+
+ /**
+ * 设备机型
+ */
+ private String modelNo;
+
+ /**
+ * 客户id
+ */
+ private Integer customerId;
+
+ /**
+ * 客户名称
+ */
+ private String customerName;
+
+ /**
+ * 设备状态-来自字典
+ */
+ private Integer deviceState;
+
+ /**
+ * 代理商编码
+ */
+ private String agentCode;
+
+ /**
+ * 代理商名称
+ */
+ private String agentName;
+
+ /**
+ * 区域编码
+ */
+ private String areaCode;
+
+ /**
+ * 区域名称
+ */
+ private String areaName;
+
+ /**
+ * 发货日期
+ */
+ private LocalDate shipmentDate;
+
+ /**
+ * 质保状态-来自字典
+ */
+ private Integer warrantyState;
+
+ /**
+ * 开始质保日期
+ */
+ private LocalDate startWarrantyDate;
+
+ /**
+ * 质保期(月)
+ */
+ private Integer warrantyMonth;
+
+ /**
+ * 行数据是否有效 0-无效 1-有效
+ */
+ private Boolean dataValidState;
+
+ /**
+ * 数据来源 1-手工新增 2-CRM(接口同步)
+ */
+ private Integer sourceFrom;
+
+ /**
+ * 数据来源id
+ */
+ private String sourceId;
+
+ /**
+ * 创建人
+ */
+ private String createBy;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 最后更新人
+ */
+ private String updateBy;
+
+ /**
+ * 最后更新时间
+ */
+ private LocalDateTime updateTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 产品线
+ */
+ private String productLine;
+
+ /**
+ * 设备地址
+ */
+ private String address;
/**
* 设备状态名称
diff --git a/nflg-mobilebroken-gongfu/src/main/resources/templates/ticketpdf.html b/nflg-mobilebroken-gongfu/src/main/resources/templates/ticketpdf.html
index 77295701..233484d4 100644
--- a/nflg-mobilebroken-gongfu/src/main/resources/templates/ticketpdf.html
+++ b/nflg-mobilebroken-gongfu/src/main/resources/templates/ticketpdf.html
@@ -41,7 +41,7 @@
|
- 移动破售后问题反馈表
+ | 工服售后问题反馈表
|
@@ -61,8 +61,8 @@
| 提交人 |
|
- 设备地点 |
- |
+ 设备区域 |
+ |
设备运行时间 |
|
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDevicePartServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDevicePartServiceImpl.java
index b0bb0f8e..1282681b 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDevicePartServiceImpl.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/GongfuDevicePartServiceImpl.java
@@ -9,10 +9,10 @@ import com.nflg.mobilebroken.common.pojo.dto.ExportPartDTO;
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
import com.nflg.mobilebroken.common.pojo.vo.ComponentInfo;
import com.nflg.mobilebroken.repository.entity.GongfuDevicePart;
-import com.nflg.mobilebroken.repository.entity.TBaseLanguageData;
+import com.nflg.mobilebroken.repository.entity.GongfuDevicePartLanguageData;
import com.nflg.mobilebroken.repository.mapper.GongfuDevicePartMapper;
+import com.nflg.mobilebroken.repository.service.IGongfuDevicePartLanguageDataService;
import com.nflg.mobilebroken.repository.service.IGongfuDevicePartService;
-import com.nflg.mobilebroken.repository.service.ITBaseLanguageDataService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
@@ -34,10 +34,10 @@ import java.util.stream.Collectors;
public class GongfuDevicePartServiceImpl extends ServiceImpl implements IGongfuDevicePartService {
@Resource
- private ITBaseLanguageDataService languageDataService;
+ private IGongfuDevicePartLanguageDataService gongfuDevicePartLanguageDataService;
public Page selectListByPage(@Param("query") PageBaseQuery query) {
- return this.getBaseMapper().getListByPage(new Page(query.getPage(), query.getPageSize()), query);
+ return this.getBaseMapper().getListByPage(new Page<>(query.getPage(), query.getPageSize()), query);
}
public List exportPart(@Param("partNo") String partNo, @Param("partName") String partName) {
@@ -61,20 +61,20 @@ public class GongfuDevicePartServiceImpl extends ServiceImpl languageData = languageDataService.lambdaQuery()
- .eq(TBaseLanguageData::getLanguageCode, language)
- .in(TBaseLanguageData::getSourceId, parts.stream().map(GongfuDevicePart::getId).collect(Collectors.toList()))
+ List languageData = gongfuDevicePartLanguageDataService.lambdaQuery()
+ .eq(GongfuDevicePartLanguageData::getLanguageCode, language)
+ .in(GongfuDevicePartLanguageData::getSourceId, parts.stream().map(GongfuDevicePart::getId).collect(Collectors.toList()))
.list();
List vos = new ArrayList<>();
parts.forEach(part -> {
ComponentInfo vo = new ComponentInfo();
vo.setId(part.getId());
- TBaseLanguageData l = languageData.stream()
- .filter(data -> Objects.equals(data.getSourceId().intValue(), part.getId()) && StrUtil.isNotBlank(data.getLanguageValue()))
+ GongfuDevicePartLanguageData l = languageData.stream()
+ .filter(data -> Objects.equals(data.getSourceId(), part.getId()) && StrUtil.isNotBlank(data.getLanguageValue()))
.findFirst()
- .orElseGet(() -> languageDataService.lambdaQuery()
- .eq(TBaseLanguageData::getSourceId, part.getId().longValue())
- .eq(TBaseLanguageData::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE)
+ .orElseGet(() -> gongfuDevicePartLanguageDataService.lambdaQuery()
+ .eq(GongfuDevicePartLanguageData::getSourceId, part.getId())
+ .eq(GongfuDevicePartLanguageData::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE)
.one());
if (Objects.nonNull(l) && StrUtil.isNotBlank(l.getLanguageValue())) {
vo.setName(l.getLanguageValue());
@@ -89,16 +89,16 @@ public class GongfuDevicePartServiceImpl extends ServiceImpl
SELECT d.*, dc.id AS 'componentId',c.area_name
FROM gongfu_device d
- LEFT JOIN gongfu_device_component dc ON d.model_no = dc.model_no AND dc.`enable` = 1
- LEFT JOIN t_base_customer c ON c.agency_company_code=d.agent_code
+ LEFT JOIN gongfu_device_component dc ON d.model_no = dc.model_no AND dc.`enable` = 1
+ LEFT JOIN t_base_customer c ON c.agency_company_code=d.agent_code
WHERE d.device_no = #{deviceNo}
ORDER BY d.data_valid_state DESC,d.device_state DESC
LIMIT 1;
diff --git a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java
index c89cf3ef..4f266a31 100644
--- a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java
+++ b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java
@@ -1,7 +1,13 @@
package com.nflg.mobilebroken.starter.service;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
+import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
import com.nflg.mobilebroken.common.pojo.dto.UniPushMessage;
+import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageBody;
+import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageCallPayload;
+import com.nflg.mobilebroken.common.util.AdminUserUtil;
+import com.nflg.mobilebroken.common.util.AppUserUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
@@ -15,10 +21,53 @@ public class UniPushService {
@Value("${uniapp.cloud.push.url}")
private String url;
- public void send(UniPushMessage message){
+ public void send(UniPushMessage message) {
log.info("发送uniapp消息:{}", JSONUtil.toJsonStr(message));
RestTemplate restTemplate = new RestTemplate();
- ResponseEntity response = restTemplate.postForEntity(url,message, String.class);
+ ResponseEntity response = restTemplate.postForEntity(url, message, String.class);
log.info("发送uniapp消息结果:{}", response.getBody());
}
+
+ public void sendTicketMessage(String from, String to, ChatMessageDTO data) {
+ send(new UniPushMessage()
+ .setSenderId(from)
+ .setReceiverId(to)
+ .setSendData(new UniPushMessageBody()
+ .setTitle("工单聊天消息")
+ .setContent(CollectionUtil.isNotEmpty(data.getAttachments()) ? "文件" : (CollectionUtil.isNotEmpty(data.getImages()) ? "图片" : data.getContent()))
+ )
+ );
+ }
+
+ public void sendTodoMessageFromAdmin(Long ticketId, String platform, Integer userId, String content) {
+ send(new UniPushMessage()
+ .setSenderId("admin-uid-" + AdminUserUtil.getUserId())
+ .setReceiverId(platform + "-uid-" + userId)
+ .setSendData(new UniPushMessageBody()
+ .setTitle("工单消息")
+ .setContent(content)
+ .setPayload(new UniPushMessageCallPayload()
+ .setTicketId(ticketId)
+ .setTitle("工单消息")
+ .setContent(content)
+ )
+ )
+ );
+ }
+
+ public void sendTodoMessageFromApp(Long ticketId, Integer userId, String content) {
+ send(new UniPushMessage()
+ .setSenderId("app-uid-" + AppUserUtil.getUserId())
+ .setReceiverId("admin-uid-" + userId)
+ .setSendData(new UniPushMessageBody()
+ .setTitle("工单消息")
+ .setContent(content)
+ .setPayload(new UniPushMessageCallPayload()
+ .setTicketId(ticketId)
+ .setTitle("工单消息")
+ .setContent(content)
+ )
+ )
+ );
+ }
}
\ No newline at end of file
diff --git a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/DeepSeekTranslate.java b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/DeepSeekTranslate.java
index eed71b0e..7d1a7070 100644
--- a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/DeepSeekTranslate.java
+++ b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/DeepSeekTranslate.java
@@ -52,7 +52,7 @@ public class DeepSeekTranslate implements ITranslate {
data.putOnce("model", "deepseek-chat");
JSONArray array = new JSONArray();
array.add(new JSONObject().putOnce("role", "system").putOnce("content", prompt));
- array.add(new JSONObject().putOnce("role", "user").putOnce("content", "请将“" + text + "”翻译成" + targetLanguage));
+ array.add(new JSONObject().putOnce("role", "user").putOnce("content", "请将" + text + "翻译成" + targetLanguage));
data.putOnce("messages", array);
data.putOnce("stream", false);
String dataStr = data.toString();