|
@@ -1,5 +1,6 @@
|
|
|
package org.springblade.business.controller;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
@@ -14,9 +15,11 @@ import org.springblade.business.entity.UserOpinion;
|
|
|
import org.springblade.business.entity.UserOpinionFile;
|
|
|
import org.springblade.business.entity.UserOpinionFlow;
|
|
|
import org.springblade.business.feign.MessageWarningClient;
|
|
|
+import org.springblade.business.service.ITaskService;
|
|
|
import org.springblade.business.service.IUserOpinionFileService;
|
|
|
import org.springblade.business.service.IUserOpinionFlowService;
|
|
|
import org.springblade.business.service.IUserOpinionService;
|
|
|
+import org.springblade.business.socket.WebSocket;
|
|
|
import org.springblade.business.vo.AssessmentUserVOS;
|
|
|
import org.springblade.business.vo.BusinessUserOpinionVO;
|
|
|
import org.springblade.business.vo.MessageWarningVO;
|
|
@@ -27,9 +30,13 @@ import org.springblade.core.secure.BladeUser;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.DateUtil;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@RestController
|
|
@@ -46,13 +53,17 @@ public class BusinessUserOpinionController {
|
|
|
|
|
|
private final MessageWarningClient messageWarningClient;
|
|
|
|
|
|
+ private final ITaskService iTaskService;
|
|
|
+
|
|
|
+ private final WebSocket webSocket;
|
|
|
+
|
|
|
/**
|
|
|
* isIgnore
|
|
|
*/
|
|
|
@PostMapping("/isIgnore")
|
|
|
@ApiOperationSupport(order = 5)
|
|
|
@ApiOperation(value = "是否忽略")
|
|
|
- public R<Boolean> isIgnore(@RequestParam String userOpinionId){
|
|
|
+ public R<Boolean> isIgnore(@RequestParam String userOpinionId) {
|
|
|
return R.data(this.userOpinionService.update(Wrappers.<UserOpinion>lambdaUpdate().set(UserOpinion::getIsIgnore, 1).eq(UserOpinion::getId, userOpinionId)));
|
|
|
}
|
|
|
|
|
@@ -62,7 +73,7 @@ public class BusinessUserOpinionController {
|
|
|
@GetMapping("/queryUserAssessmentPage")
|
|
|
@ApiOperationSupport(order = 4)
|
|
|
@ApiOperation(value = "考核区分页")
|
|
|
- public R<IPage<AssessmentUserVOS>> queryUserAssessmentPageList(AssessmentUserVOS vo){
|
|
|
+ public R<IPage<AssessmentUserVOS>> queryUserAssessmentPageList(AssessmentUserVOS vo) {
|
|
|
Query query = new Query();
|
|
|
query.setCurrent(vo.getCurrent());
|
|
|
query.setSize(vo.getSize());
|
|
@@ -71,7 +82,7 @@ public class BusinessUserOpinionController {
|
|
|
//总数
|
|
|
Integer count = this.userOpinionFlowService.countUserAssessmentPageList(vo);
|
|
|
//分页数据
|
|
|
- if(StringUtils.isNotEmpty(vo.getEndTime())){
|
|
|
+ if (StringUtils.isNotEmpty(vo.getEndTime())) {
|
|
|
//因为between的含头不含尾属性,需要给结尾时间+1
|
|
|
String endTime = vo.getEndTime();
|
|
|
endTime = DateUtil.format(org.apache.commons.lang.time.DateUtils.addDays(DateUtil.parse(endTime, "yyyy-MM-dd hh:mm"), 1), "yyyy-MM-dd hh:mm");
|
|
@@ -80,7 +91,7 @@ public class BusinessUserOpinionController {
|
|
|
List<AssessmentUserVOS> result = this.userOpinionFlowService.queryUserAssessmentPage(vo);
|
|
|
result.forEach(vos -> {
|
|
|
List<UserOpinionFile> files = this.userOpinionFileService.selectUserOpinionFileByUserOpinionKey(vos.getUserOpinionId());
|
|
|
- if(files != null && files.size() > 0){
|
|
|
+ if (files != null && files.size() > 0) {
|
|
|
vos.setFileUrlList(files.stream().map(UserOpinionFile::getFileUrl).distinct().collect(Collectors.toList()));
|
|
|
}
|
|
|
vos.setOperation("qufq".equals(AuthUtil.getUserName()));
|
|
@@ -94,6 +105,7 @@ public class BusinessUserOpinionController {
|
|
|
|
|
|
/**
|
|
|
* 获取所有工单及处理进度
|
|
|
+ *
|
|
|
* @param query 分页信息
|
|
|
* @return 结果
|
|
|
*/
|
|
@@ -103,12 +115,13 @@ public class BusinessUserOpinionController {
|
|
|
@ApiImplicitParams({
|
|
|
@ApiImplicitParam(name = "query", value = "分页信息", required = true)
|
|
|
})
|
|
|
- public R<IPage<BusinessUserOpinionVO>> queryBusinessUserOpinionListAll(Query query){
|
|
|
+ public R<IPage<BusinessUserOpinionVO>> queryBusinessUserOpinionListAll(Query query) {
|
|
|
return R.data(this.userOpinionService.queryBusinessUserOpinionListAll(query));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 业务人员提交环节操作
|
|
|
+ *
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@PostMapping("/manageUserOperationStatus")
|
|
@@ -119,9 +132,9 @@ public class BusinessUserOpinionController {
|
|
|
@ApiImplicitParam(name = "newNumber", value = "当前流程次数", required = true),
|
|
|
@ApiImplicitParam(name = "currentLinkId", value = "当前环节ID", required = true)
|
|
|
})
|
|
|
- public R<Boolean> manageUserOperationStatus(@RequestParam String userOpinionId, @RequestParam Integer currentLink, @RequestParam Integer newNumber, @RequestParam String currentLinkId, String manageTime){
|
|
|
+ public R<Boolean> manageUserOperationStatus(@RequestParam String userOpinionId, @RequestParam Integer currentLink, @RequestParam Integer newNumber, @RequestParam String currentLinkId, String manageTime) {
|
|
|
|
|
|
- if(StringUtils.isEmpty(currentLinkId)){
|
|
|
+ if (StringUtils.isEmpty(currentLinkId)) {
|
|
|
return R.data(-1, false, "缺少currentLinkId参数");
|
|
|
}
|
|
|
//获取当前操作用户
|
|
@@ -135,15 +148,15 @@ public class BusinessUserOpinionController {
|
|
|
|
|
|
//找到当前环节的下一环节
|
|
|
Long nextLink = null, nextLinkEnd = null;
|
|
|
- if(StringUtils.isEmpty(manageTime) && new Integer("3").equals(currentLink)){
|
|
|
+ if (StringUtils.isEmpty(manageTime) && new Integer("3").equals(currentLink)) {
|
|
|
//直接提交完结
|
|
|
nextLink = flowVOS.get(2).getId();
|
|
|
nextLinkEnd = flowVOS.get(3).getId();
|
|
|
} else {
|
|
|
- for(int i = 0, l = flowVOS.size(); i < l; i ++){
|
|
|
- if(new Long(currentLinkId).equals(flowVOS.get(i).getId())){
|
|
|
+ for (int i = 0, l = flowVOS.size(); i < l; i++) {
|
|
|
+ if (new Long(currentLinkId).equals(flowVOS.get(i).getId())) {
|
|
|
//找到下一个环节ID
|
|
|
- switch (i){
|
|
|
+ switch (i) {
|
|
|
case 1:
|
|
|
//说明当前环节是提交"进入人工处理环节"操作
|
|
|
nextLink = flowVOS.get(i + 1).getId();
|
|
@@ -162,8 +175,8 @@ public class BusinessUserOpinionController {
|
|
|
|
|
|
//将当前环节更改为已完成
|
|
|
boolean result = this.userOpinionFlowService.update(Wrappers.<UserOpinionFlow>lambdaUpdate().set(UserOpinionFlow::getIsCurrent, 2).set(UserOpinionFlow::getUpdateUser, user.getUserId()).set(UserOpinionFlow::getUpdateTime, new Date()).eq(UserOpinionFlow::getId, currentLinkId));
|
|
|
- if(result){
|
|
|
- if(StringUtils.isEmpty(manageTime)){
|
|
|
+ if (result) {
|
|
|
+ if (StringUtils.isEmpty(manageTime)) {
|
|
|
manageTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd");
|
|
|
} else {
|
|
|
//更新预计时间
|
|
@@ -173,21 +186,21 @@ public class BusinessUserOpinionController {
|
|
|
//内容
|
|
|
String content = "";
|
|
|
|
|
|
- if(nextLink != null && StringUtils.isNotEmpty(String.valueOf(nextLink))){
|
|
|
+ if (nextLink != null && StringUtils.isNotEmpty(String.valueOf(nextLink))) {
|
|
|
content = "用户" + userOpinion.getCreateUserName() + ",您好,您所提交的【" + userOpinion.getProblemType() + ":" + userOpinion.getOpinionContent() + "】工单服务已经进入人工处理环节,处理人:" + AuthUtil.getNickName();
|
|
|
|
|
|
//提交"进入人工处理环节"操作
|
|
|
result = this.userOpinionFlowService.update(Wrappers.<UserOpinionFlow>lambdaUpdate().set(UserOpinionFlow::getReplyContent, "预计" + manageTime + "之前完成").set(UserOpinionFlow::getUpdateTime, new Date()).set(UserOpinionFlow::getIsCurrent, new Integer("3").equals(currentLink) ? 2 : 1).eq(UserOpinionFlow::getId, nextLink));
|
|
|
}
|
|
|
- if(nextLinkEnd != null && StringUtils.isNotEmpty(String.valueOf(nextLinkEnd))){
|
|
|
+ if (nextLinkEnd != null && StringUtils.isNotEmpty(String.valueOf(nextLinkEnd))) {
|
|
|
content = "用户" + userOpinion.getCreateUserName() + ",您好,您所提交的【" + userOpinion.getProblemType() + ":" + userOpinion.getOpinionContent() + "】工单服务已解决,请及时查看,处理人:" + AuthUtil.getNickName();
|
|
|
|
|
|
//提交"已解决"操作
|
|
|
result = this.userOpinionFlowService.update(Wrappers.<UserOpinionFlow>lambdaUpdate().set(UserOpinionFlow::getUpdateTime, new Date()).set(UserOpinionFlow::getIsCurrent, 2).eq(UserOpinionFlow::getId, nextLinkEnd));
|
|
|
}
|
|
|
|
|
|
- try{
|
|
|
- if(StringUtils.isNotEmpty(content)){
|
|
|
+ try {
|
|
|
+ if (StringUtils.isNotEmpty(content)) {
|
|
|
this.messageWarningClient.savePushUserMessageWarning(new MessageWarningVO(
|
|
|
userOpinion.getProjectId(),
|
|
|
userOpinion.getContractId(),
|
|
@@ -197,7 +210,14 @@ public class BusinessUserOpinionController {
|
|
|
0
|
|
|
));
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
+
|
|
|
+ //通过WebSocket推送数量条数推送给反馈人
|
|
|
+ if (ObjectUtil.isNotEmpty(userOpinion.getProjectId()) && ObjectUtil.isNotEmpty(userOpinion.getContractId()) && ObjectUtil.isNotEmpty(userOpinion.getCreateUser())) {
|
|
|
+ Map<String, String> stringMap = iTaskService.getTaskCount(userOpinion.getProjectId().toString(), userOpinion.getContractId().toString(), userOpinion.getCreateUser().toString());
|
|
|
+ webSocket.sendMessageByUserId(userOpinion.getCreateUser().toString(), JSON.toJSONString(stringMap));
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
@@ -208,6 +228,7 @@ public class BusinessUserOpinionController {
|
|
|
|
|
|
/**
|
|
|
* 获取分配给当前登录用户的工单记录
|
|
|
+ *
|
|
|
* @return 结果集
|
|
|
*/
|
|
|
@GetMapping("/queryBusinessUserOpinionList")
|
|
@@ -217,13 +238,13 @@ public class BusinessUserOpinionController {
|
|
|
@ApiImplicitParam(name = "current", value = "当前页", required = true),
|
|
|
@ApiImplicitParam(name = "size", value = "当前页显示数量", required = true)
|
|
|
})
|
|
|
- public R<IPage<BusinessUserOpinionVO>> queryBusinessUserOpinionList(@RequestParam Integer current, @RequestParam Integer size){
|
|
|
+ public R<IPage<BusinessUserOpinionVO>> queryBusinessUserOpinionList(@RequestParam Integer current, @RequestParam Integer size) {
|
|
|
BladeUser user = AuthUtil.getUser();
|
|
|
Query query = new Query();
|
|
|
query.setCurrent(current);
|
|
|
query.setSize(size);
|
|
|
//获取推送给当前用户的工单信息
|
|
|
- return R.data(this.userOpinionService.queryBusinessUserOpinionList(String.valueOf(user.getUserId()),query));
|
|
|
+ return R.data(this.userOpinionService.queryBusinessUserOpinionList(String.valueOf(user.getUserId()), query));
|
|
|
}
|
|
|
|
|
|
}
|