|
|
@@ -17,6 +17,7 @@
|
|
|
package org.springblade.mocha.controller;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
@@ -25,6 +26,7 @@ import lombok.AllArgsConstructor;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
|
|
|
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
|
|
|
import org.springblade.client.entity.Message;
|
|
|
import org.springblade.client.feign.IMessageClient;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
@@ -36,6 +38,9 @@ import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.mocha.vo.TaskStatisticsVO;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
+import org.springblade.weChat.feign.IWechatClient;
|
|
|
+import org.springblade.weChat.message.dto.WxMpTemplateDto;
|
|
|
+import org.springblade.weChat.message.entity.WechatMessageConfigurationItem;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
@@ -44,11 +49,13 @@ import org.springblade.mocha.vo.TaskVO;
|
|
|
import org.springblade.mocha.service.ITaskService;
|
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
|
|
|
|
+import java.lang.reflect.Method;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 任务 控制器
|
|
|
@@ -64,7 +71,7 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
private final ITaskService taskService;
|
|
|
|
|
|
-// private final IWechatClient wechatClient;
|
|
|
+ private final IWechatClient wechatClient;
|
|
|
//消息
|
|
|
private final IMessageClient messageClient;
|
|
|
|
|
|
@@ -117,6 +124,7 @@ public class TaskController extends BladeController {
|
|
|
qw.eq("is_deleted", 0);
|
|
|
String userName = AuthUtil.getUserName();
|
|
|
if (!"admin".equals(userName)) {
|
|
|
+// userClient.getWebUserByXcxUserPhone();
|
|
|
qw.and(qwa -> qwa.like("cc_id", AuthUtil.getUserId())
|
|
|
.or().eq("create_user", AuthUtil.getUserId())
|
|
|
.or().eq("responsible_user_id", AuthUtil.getUserId()));
|
|
|
@@ -230,7 +238,83 @@ public class TaskController extends BladeController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// System.out.println("==== 任务看板添加发送消息租户号:" + AuthUtil.getTenantId() + "。接收人ids:" + sb + " ====");
|
|
|
+ System.out.println("==== 任务看板添加发送消息租户号:" + AuthUtil.getTenantId() + "。接收人ids:" + sb + " ====");
|
|
|
+
|
|
|
+
|
|
|
+ R<List<WechatMessageConfigurationItem>> resItem = wechatClient.getTemplateType("1", task.getTenantId());
|
|
|
+ if (resItem.isSuccess() && ObjectUtils.isNotNull(resItem.getData())) {
|
|
|
+
|
|
|
+ if (resItem.isSuccess() && ObjectUtils.isNotNull(resItem.getData())) {
|
|
|
+ List<WxMpTemplateData> data = new ArrayList<>();
|
|
|
+ TaskVO taskWX = new TaskVO();
|
|
|
+ // 标题
|
|
|
+ if (task.getIsUrgency() == 0) {
|
|
|
+ taskWX.setTitle("新任务");
|
|
|
+ } else {
|
|
|
+ taskWX.setTitle("新紧急任务!");
|
|
|
+ }
|
|
|
+ // 任务状态
|
|
|
+ switch (task.getType()) {
|
|
|
+ case 1:
|
|
|
+ taskWX.setTaskStatus("待执行");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ taskWX.setTaskStatus("执行中");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ taskWX.setTaskStatus("已提交");
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ taskWX.setTaskStatus("工单关闭");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ // 要求完成时间
|
|
|
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String askForATimeToComplete = dtf.format(task.getCompletionTime());
|
|
|
+ taskWX.setAskForATimeToComplete(askForATimeToComplete);
|
|
|
+ // 需求方
|
|
|
+ taskWX.setDemandSide(task.getCreateUserName());
|
|
|
+ // 负责人
|
|
|
+ taskWX.setHead(task.getResponsibleUserName());
|
|
|
+ // 任务信息
|
|
|
+ taskWX.setTaskInformation(task.getTsInfo());
|
|
|
+ // 备注
|
|
|
+ taskWX.setRemarks(task.getRemarks());
|
|
|
+
|
|
|
+ for (WechatMessageConfigurationItem item : resItem.getData()) {
|
|
|
+ try {
|
|
|
+ // 根据方法名获取对应的Method对象
|
|
|
+ Method method = taskWX.getClass().getMethod(item.getMethod());
|
|
|
+ // 调用get方法并打印结果
|
|
|
+ Object result = method.invoke(taskWX);
|
|
|
+ System.out.println(result);
|
|
|
+ if (ObjectUtils.isNotNull(result)) {
|
|
|
+ data.add(new WxMpTemplateData(item.getDataValue(), result.toString()));
|
|
|
+ } else {
|
|
|
+ data.add(new WxMpTemplateData(item.getDataValue(), "无"));
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (data.size() > 0) {
|
|
|
+// List<User> xcxUserList = userClient.getXcxUserListByWebUserId(ids);
|
|
|
+ String openidS = userList.stream().map(User::getOaOpenId).filter(Objects::nonNull).collect(Collectors.joining(","));
|
|
|
+ WxMpTemplateDto wxMpTemplateDto = new WxMpTemplateDto();
|
|
|
+ wxMpTemplateDto.setOpenid(openidS);
|
|
|
+ wxMpTemplateDto.setTenantId(task.getTenantId());
|
|
|
+ wxMpTemplateDto.setType("1");
|
|
|
+ wxMpTemplateDto.setPagePath("pages/tabBar/task/list");
|
|
|
+ wxMpTemplateDto.setData(data);
|
|
|
+ String rest = wechatClient.sendMessageNew(wxMpTemplateDto);
|
|
|
+ System.out.println("=========发送返回值=========" + rest);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+//
|
|
|
+// wechatClient.sendMessageNew()
|
|
|
// String rest = wechatClient.sendMessage(
|
|
|
// sb.toString(),
|
|
|
// "新任务通知", "新任务通知",
|
|
|
@@ -277,7 +361,6 @@ public class TaskController extends BladeController {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
// boolean b = taskService.updateById(task);
|
|
|
|
|
|
Task originalTask = taskService.getById(task.getId());
|