Browse Source

Merge remote-tracking branch 'origin/dev' into dev

纪新园 2 years ago
parent
commit
5663592c65

+ 189 - 1
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/TaskController.java

@@ -24,6 +24,9 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.springblade.client.entity.Message;
+import org.springblade.client.feign.IMessageClient;
+import org.springblade.client.feign.IWechatClient;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
@@ -31,6 +34,8 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 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.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.mocha.entity.Task;
@@ -38,7 +43,10 @@ import org.springblade.mocha.vo.TaskVO;
 import org.springblade.mocha.service.ITaskService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -55,6 +63,12 @@ public class TaskController extends BladeController {
 
 	private final ITaskService taskService;
 
+//	private final IWechatClient wechatClient;
+//	//消息
+//	private final IMessageClient messageClient;
+//
+//	private final IUserClient userClient;
+
 	/**
 	 * 详情
 	 */
@@ -74,7 +88,7 @@ public class TaskController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入task")
 	public R list(Task task, Query query) {
 
-		TaskStatisticsVO taskStatisticsVO = taskService.statistics(AuthUtil.getTenantId());
+		TaskStatisticsVO taskStatisticsVO = taskService.statistics(AuthUtil.getTenantId(), task);
 
 //		QueryWrapper<Task> qw = Condition.getQueryWrapper(task).orderByDesc("create_time", "responsible_user_name");
 		QueryWrapper<Task> qw = new QueryWrapper<>();
@@ -144,6 +158,84 @@ public class TaskController extends BladeController {
 	@ApiOperation(value = "新增", notes = "传入task")
 	public R save(@Valid @RequestBody Task task) {
 		task.setCreateTime(LocalDateTime.now());
+//		StringBuilder sb = new StringBuilder();
+//		sb.append(task.getResponsibleUserId()).append(",");
+//		sb.append(task.getCreateUser()).append(",");
+//		sb.append(task.getCcId());
+//		SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
+//		String date1 = format.format(new Date());
+//
+//		boolean save = taskService.save(task);
+//
+//		List<Long> ids = new ArrayList<>();
+//		ids.add(task.getCreateUser());
+//		ids.add(task.getResponsibleUserId());
+//		List<String> idList = Arrays.asList(task.getCcId().split(","));
+//		idList.forEach(id -> ids.add(Long.valueOf(id)));
+//		List<User> userList = userClient.userListGetByIds(ids);
+//
+//		String type = "";
+//		if (task.getType() == 1) {
+//			type = "待执行";
+//		} else if (task.getType() == 2) {
+//			type = "执行中";
+//		} else if (task.getType() == 3) {
+//			type = "已提交";
+//		} else if (task.getType() == 4) {
+//			type = "工单关闭";
+//		}
+//
+//		for (User datum : userList) {
+//			//循环发送消息
+//			Message sendMessage = new Message();
+//			sendMessage.setParameter(null);
+//			sendMessage.setUserName(AuthUtil.getUserName());
+//			sendMessage.setUserId(null);
+//			sendMessage.setToUserId(datum.getId());
+//			sendMessage.setToUserName(datum.getName());
+//			sendMessage.setMessageType(1);
+//			sendMessage.setTenantId(AuthUtil.getTenantId());
+//			sendMessage.setCreateUser(null);
+//			sendMessage.setCreateTime(new Date());
+//			sendMessage.setUrl("/TaskKanban/index");
+//			sendMessage.setPageLabel("任务看板");
+//			sendMessage.setPageStatus(null);
+//			DateTimeFormatter dfDateTime = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
+//			String date = dfDateTime.format(task.getCompletionTime().plusYears(1));
+//			if (task.getIsUrgency() == 0) {
+//				sendMessage.setMessageBody("您有新的任务" +
+//					"\n需求方:" + task.getCreateUserName() +
+//					"\n要求完成时间: " + date +
+//					"\n当前状态:" + type +
+//					"\n任务内容:" + task.getTsInfo());
+//			} else {
+//				sendMessage.setMessageBody("紧急任务!" +
+//					"\n需求方:" + task.getCreateUserName() +
+//					"\n要求完成时间: " + date +
+//					"\n任务内容:" + task.getTsInfo());
+//			}
+//			R webSave = messageClient.save(sendMessage);
+//			System.out.println("web信息发送结果:" + webSave);
+//
+//			if (!webSave.isSuccess()) {
+//				throw new SecurityException("web信息发送消息失败");
+//			}
+//		}
+//
+//		System.out.println("==== 任务看板添加发送消息租户号:" + AuthUtil.getTenantId() + "。接收人ids:" + sb + " ====");
+//		String rest = wechatClient.sendMessage(
+//			sb.toString(),
+//			"新任务通知", "新任务通知",
+//			date1,
+//			task.getCreateUserName(),
+//			task.getResponsibleUserId().toString(),
+//			"",
+//			"",
+//			task.getTsInfo(),
+//			new BigDecimal("0.00"),
+//			"1",
+//			AuthUtil.getTenantId());
+//		System.out.println("=========发送返回值=========" + rest);
 		return R.status(taskService.save(task));
 	}
 
@@ -155,6 +247,102 @@ public class TaskController extends BladeController {
 	@ApiOperation(value = "修改", notes = "传入task")
 	public R update(@Valid @RequestBody Task task) {
 		task.setUpdateTime(LocalDateTime.now());
+//
+//		task.setCreateTime(LocalDateTime.now());
+//		StringBuilder sb = new StringBuilder();
+//		sb.append(task.getResponsibleUserId()).append(",");
+//		sb.append(task.getCreateUser()).append(",");
+//		sb.append(task.getCcId());
+//		SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
+//		String date1 = format.format(new Date());
+//
+//		String info = "\"" + task.getTsInfo() + "\"" + "为 ";
+//		if (task.getType() == 1) {
+//			info += "待执行";
+//		} else if (task.getType() == 2) {
+//			info += "执行中";
+//		} else if (task.getType() == 3) {
+//			info += "已提交";
+//		} else if (task.getType() == 4) {
+//			info += "工单关闭";
+//		}
+//
+//		Task originalTask = taskService.getById(task.getId());
+//
+//		boolean b = taskService.updateById(task);
+//
+//		List<Long> ids = new ArrayList<>();
+//		ids.add(task.getCreateUser());
+//		ids.add(task.getResponsibleUserId());
+//		List<String> idList = Arrays.asList(task.getCcId().split(","));
+//		idList.forEach(id -> ids.add(Long.valueOf(id)));
+//		List<User> userList = userClient.userListGetByIds(ids);
+//
+//		String type = "";
+//		if (task.getType() == 1) {
+//			type = "待执行";
+//		} else if (task.getType() == 2) {
+//			type = "执行中";
+//		} else if (task.getType() == 3) {
+//			type = "已提交";
+//		} else if (task.getType() == 4) {
+//			type = "工单关闭";
+//		}
+//
+//		for (User datum : userList) {
+//			//循环发送消息
+//			Message sendMessage = new Message();
+//			sendMessage.setParameter(null);
+//			sendMessage.setUserName(AuthUtil.getUserName());
+//			sendMessage.setUserId(null);
+//			sendMessage.setToUserId(datum.getId());
+//			sendMessage.setToUserName(datum.getName());
+//			sendMessage.setMessageType(1);
+//			sendMessage.setTenantId(AuthUtil.getTenantId());
+//			sendMessage.setCreateUser(null);
+//			sendMessage.setCreateTime(new Date());
+//			sendMessage.setUrl("/TaskKanban/index");
+//			sendMessage.setPageLabel("任务看板");
+//			sendMessage.setPageStatus(null);
+//			DateTimeFormatter dfDateTime = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
+//			String date = dfDateTime.format(task.getCompletionTime().plusYears(1));
+//			if (task.getIsUrgency() == 0) {
+//				sendMessage.setMessageBody("任务看板" +
+//					"\n需求方:" + task.getCreateUserName() +
+//					"\n要求完成时间: " + date +
+//					"\n当前状态:" + type +
+//					"\n任务内容:" + task.getTsInfo());
+//			} else {
+//				sendMessage.setMessageBody("紧急任务!" +
+//					"\n需求方:" + task.getCreateUserName() +
+//					"\n要求完成时间: " + date +
+//					"\n任务内容:" + task.getTsInfo());
+//			}
+//			R webSave = messageClient.save(sendMessage);
+//			System.out.println("web信息发送结果:" + webSave);
+//
+//			if (!webSave.isSuccess()) {
+//				throw new SecurityException("web信息发送消息失败");
+//			}
+//		}
+//
+//		if (originalTask.getType() != task.getType()) {
+//			System.out.println("==== 任务看板修改发送消息租户号:" + AuthUtil.getTenantId() + "。接收人ids:" + sb + " ====");
+//			String rest = wechatClient.sendMessage(
+//				sb.toString(),
+//				"任务状态更新!", "任务状态更新!",
+//				date1,
+//				task.getCreateUserName(),
+//				task.getResponsibleUserId().toString(),
+//				"",
+//				"",
+//				info,
+//				new BigDecimal("0.00"),
+//				"1",
+//				AuthUtil.getTenantId());
+//			System.out.println("=========发送返回值=========" + rest);
+//		}
+
 		return R.status(taskService.updateById(task));
 	}
 

+ 1 - 1
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/ITaskService.java

@@ -51,5 +51,5 @@ public interface ITaskService extends IService<Task> {
 	 * @param tenantId
 	 * @return
 	 */
-	TaskStatisticsVO statistics(String tenantId);
+	TaskStatisticsVO statistics(String tenantId, Task task);
 }

+ 9 - 3
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/TaskServiceImpl.java

@@ -31,7 +31,7 @@ import java.time.LocalDateTime;
 import java.util.*;
 
 /**
- * 	任务 服务实现类
+ * 任务 服务实现类
  *
  * @author BladeX
  * @since 2023-09-28
@@ -113,14 +113,20 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
 	}
 
 	@Override
-	public TaskStatisticsVO statistics(String tenantId) {
+	public TaskStatisticsVO statistics(String tenantId, Task task) {
 		LambdaQueryWrapper<Task> lqw = new LambdaQueryWrapper<Task>().eq(Task::getTenantId, tenantId).eq(Task::getIsDeleted, 0);
 		String userName = AuthUtil.getUserName();
-		if (!"admin".equals(userName)) {
+
+		if (!"admin".equals(userName) && task.getResponsibleUserId() != null) {
+			lqw.eq(Task::getResponsibleUserId, task.getResponsibleUserId());
+		} else if (!"admin".equals(userName)) {
 			lqw.and(qwa -> qwa.like(Task::getCcId, AuthUtil.getUserId())
 				.or().eq(Task::getCreateUser, AuthUtil.getUserId())
 				.or().eq(Task::getResponsibleUserId, AuthUtil.getUserId()));
+		} else if (task.getResponsibleUserId() != null) {
+			lqw.eq(Task::getResponsibleUserId, task.getResponsibleUserId());
 		}
+
 		List<Task> tasks = baseMapper.selectList(lqw);
 		LocalDateTime nowTime = LocalDateTime.now();
 		TaskStatisticsVO taskStatisticsVO = getTaskStatisticsVO(tasks, nowTime);