Эх сурвалжийг харах

新需求:任务管理驳回时通知上报人;废除消息查询修改

lvy 3 сар өмнө
parent
commit
67a2e02268

+ 15 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/MessageWarningController.java

@@ -166,6 +166,13 @@ public class MessageWarningController extends BladeController {
         if (vo.getSmsType() != null && vo.getSmsType() > -1) {
             wrapper.lambda().eq(MessageWarning::getIsRead, new Integer("2").equals(vo.getSmsType()) ? 0 : 1);
         }
+        if (vo.getTypeValue() != null && !vo.getTypeValue().isEmpty()) {
+            if (vo.getTypeValue().equals("1")) {
+                wrapper.lambda().like(MessageWarning::getContent, "废除了");
+            } else {
+                wrapper.lambda().like(MessageWarning::getContent, "驳回了");
+            }
+        }
         //设置合同段ID
         wrapper.lambda().eq(MessageWarning::getProjectId, vo.getProjectId()).eq(MessageWarning::getContractId, vo.getContractId());
 
@@ -179,6 +186,14 @@ public class MessageWarningController extends BladeController {
             List<DictBiz> dictBizs = this.dictBizClient.getList("business_message_type", "notRoot").getData();
 
             iPage.getRecords().forEach(reVO -> {
+                if (reVO.getType() != null && reVO.getType() == 3) {
+                    if (reVO.getContent() != null && reVO.getContent().contains("驳回了")) {
+                        reVO.setTypeValue("驳回通知");
+                    } else if (reVO.getContent() != null && reVO.getContent().contains("废除了")) {
+                        reVO.setTypeValue("废除通知");
+                    }
+                    return;
+                }
                 if (dictBizs != null && dictBizs.size() > 0) {
                     for (DictBiz biz : dictBizs) {
                         if (biz.getDictKey().equals(reVO.getType().toString())) {

+ 36 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -668,6 +668,18 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 }
                 this.taskBatchService.saveBatch(taskList);
             }else if (taskAppr.getFlag().equals("NO")){ //废除
+                Set<String> taskIds = taskApprovalVOS.stream().map(TaskApprovalVO::getTaskId).collect(Collectors.toSet());
+                List<Task> tasks = this.listByIds(taskIds);
+                Map<String, Task> taskMap = tasks.stream().collect(Collectors.toMap(task -> task.getId() + "", task -> task));
+                List<String> projectIds = tasks.stream().map(Task::getProjectId).distinct().collect(Collectors.toList());
+                List<Long> contractIds = tasks.stream().map(task -> Long.valueOf(task.getContractId())).distinct().collect(Collectors.toList());
+                List<ProjectInfo> projects = this.projectClient.queryProjectList(projectIds);
+                List<ContractInfo> contracts = this.contractClient.getContractByIds(contractIds);
+                Map<String, ProjectInfo> projectMap = new HashMap<>();
+                Map<String, ContractInfo> contractMap = new HashMap<>();
+                projects.forEach(project -> projectMap.put(project.getId().toString(), project));
+                contracts.forEach(contract -> contractMap.put(contract.getId().toString(), contract));
+
                 for (TaskApprovalVO taskApp : taskApprovalVOS) {
                     // 废除信息
                     Integer appType = taskApp.getApprovalType();
@@ -708,6 +720,30 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                             }
                         }
                     }
+                    String projectName = "", contractName = "";
+                    Task task = taskMap.get(taskApp.getTaskId());
+                    if (projectMap.containsKey(task.getProjectId())) {
+                        ProjectInfo project = projectMap.get(task.getProjectId());
+                        projectName = StringUtils.isNotEmpty(project.getProjectAlias()) ? project.getProjectAlias() : project.getProjectName();
+                    }
+                    if (contractMap.containsKey(task.getContractId())) {
+                        ContractInfo contract = contractMap.get(task.getContractId());
+                        contractName = contract.getContractName();
+                    }
+                    //保存通知记录
+                    this.messageWarningService.savePushUserMessageWarning(
+                            new MessageWarningVO(
+                                    Long.valueOf(task.getProjectId()),
+                                    Long.valueOf(task.getContractId()),
+                                    //驳回通知
+                                    3,
+                                    //内容
+                                    projectName + contractName + "的用户【" + AuthUtil.getNickName() + "】驳回了【" + task.getTaskName() + "】",
+                                    //推送的目标人
+                                    Long.parseLong(task.getReportUser()),
+                                    //默认未读
+                                    0
+                            ));
                 }
             }
         }