新增外部联系人
This commit is contained in:
parent
92a7d30962
commit
eeadef6dfd
|
@ -9,13 +9,16 @@ import cn.hutool.core.date.DateUtil;
|
|||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.snow.common.enums.DingFlowTaskType;
|
||||
import com.snow.common.enums.DingTalkListenerType;
|
||||
import com.snow.framework.util.ShiroUtils;
|
||||
import com.snow.system.domain.*;
|
||||
import com.snow.system.domain.SysOaTaskDistribute;
|
||||
import com.snow.system.event.SyncEvent;
|
||||
import com.snow.system.service.ISysOaTaskDistributeService;
|
||||
import com.snow.system.service.ISysUserService;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
@ -52,6 +55,9 @@ public class SysOaTaskController extends BaseController
|
|||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
@RequiresPermissions("system:task:view")
|
||||
@GetMapping()
|
||||
public String task()
|
||||
|
@ -215,6 +221,9 @@ public class SysOaTaskController extends BaseController
|
|||
sysOaTaskDistribute.setTaskExecuteId(String.valueOf(ShiroUtils.getUserId()));
|
||||
sysOaTaskDistribute.setUpdateBy(String.valueOf(ShiroUtils.getUserId()));
|
||||
sysOaTaskDistribute.setTaskExecuteStatus(DingFlowTaskType.COMPLETED.getCode());
|
||||
//事件发送
|
||||
SyncEvent<SysOaTaskDistribute> syncEvent = new SyncEvent(sysOaTaskDistribute, DingTalkListenerType.UPDATE_TODO_TASK_EXECUTOR_STATUS);
|
||||
applicationContext.publishEvent(syncEvent);
|
||||
return toAjax(sysOaTaskDistributeService.updateSysOaTaskDistribute(sysOaTaskDistribute));
|
||||
}
|
||||
/**
|
||||
|
|
|
@ -29,7 +29,7 @@ public enum DingTalkListenerType {
|
|||
|
||||
GET_EXT_CONTACT_USER(5,3,"get_ext_contact_user"),
|
||||
|
||||
|
||||
//*******************回调
|
||||
CALL_BACK_CHECK_URL(1,10, "回调check_url"),
|
||||
|
||||
CALL_BACK_REGISTER(1,10, "回调注册"),
|
||||
|
@ -40,6 +40,8 @@ public enum DingTalkListenerType {
|
|||
|
||||
CALL_BACK_FAILED_RESULT(23,10, "获取回调失败结果"),
|
||||
|
||||
|
||||
//*****************待办
|
||||
WORK_RECODE_CREATE(1,20, "创建待办"),
|
||||
|
||||
GET_WORK_RECORD_USER(2,20,"获取用户待办"),
|
||||
|
@ -48,6 +50,9 @@ public enum DingTalkListenerType {
|
|||
|
||||
WORK_RECORD_DELETE(4,20,"删除待办"),
|
||||
|
||||
|
||||
UPDATE_TODO_TASK_EXECUTOR_STATUS(7,20,"更新任务执行状态"),
|
||||
|
||||
/**
|
||||
* 审批任务开始、结束、转交。
|
||||
*/
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
package com.snow.dingtalk.listener;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.aliyun.dingtalktodo_1_0.models.GetTodoTaskBySourceIdResponseBody;
|
||||
import com.snow.common.enums.DingTalkListenerType;
|
||||
import com.snow.common.utils.spring.SpringUtils;
|
||||
import com.snow.dingtalk.service.impl.WorkRecodeServiceImpl;
|
||||
import com.snow.framework.web.domain.common.SysSendMessageDTO;
|
||||
import com.snow.system.domain.SysOaTask;
|
||||
import com.snow.system.domain.SysOaTaskDistribute;
|
||||
import com.snow.system.event.SyncEvent;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -29,7 +32,7 @@ public class WorkRecodeEventService implements ISyncDingTalkInfo {
|
|||
Integer code = eventType.getCode();
|
||||
//钉钉创建待办
|
||||
if(code.equals(DingTalkListenerType.WORK_RECODE_CREATE.getCode())){
|
||||
SysOaTask sysOaTask=(SysOaTask)syncEvent.getSource();
|
||||
SysOaTaskDistribute sysOaTask=(SysOaTaskDistribute)syncEvent.getSource();
|
||||
log.info("@@创建钉钉待办系统传入的参数:{}",JSON.toJSONString(sysOaTask));
|
||||
workRecodeService.createTodoTask(sysOaTask);
|
||||
}
|
||||
|
@ -45,6 +48,16 @@ public class WorkRecodeEventService implements ISyncDingTalkInfo {
|
|||
log.info("@@删除钉钉待办系统传入的参数:{}",JSON.toJSONString(taskId));
|
||||
workRecodeService.deleteTodoTask(taskId);
|
||||
}
|
||||
//更新任务状态
|
||||
if(code.equals(DingTalkListenerType.UPDATE_TODO_TASK_EXECUTOR_STATUS.getCode())){
|
||||
SysOaTaskDistribute sysOaTaskDistribute=(SysOaTaskDistribute)syncEvent.getSource();
|
||||
GetTodoTaskBySourceIdResponseBody body = workRecodeService.getTodoTaskByBusinessId(String.valueOf(sysOaTaskDistribute.getId()));
|
||||
boolean isComplete=false;
|
||||
if(ObjectUtil.isNotNull(sysOaTaskDistribute.getTaskCompleteTime())){
|
||||
isComplete=true;
|
||||
}
|
||||
workRecodeService.updateTodoTaskExecutorStatus(body.getId(),isComplete);
|
||||
}
|
||||
//钉钉发送普通消息
|
||||
else if(code.equals(DingTalkListenerType.ASYNCSEND_V2.getCode())){
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.snow.dingtalk.model.request.WorkrecordAddRequest;
|
|||
import com.snow.dingtalk.model.request.WorkrecordGetbyuseridRequest;
|
||||
import com.snow.framework.web.domain.common.SysSendMessageDTO;
|
||||
import com.snow.system.domain.SysOaTask;
|
||||
import com.snow.system.domain.SysOaTaskDistribute;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
|
@ -31,7 +32,7 @@ public interface WorkRecodeService {
|
|||
* @param sysOaTask
|
||||
* @return
|
||||
*/
|
||||
String createTodoTask(SysOaTask sysOaTask);
|
||||
String createTodoTask(SysOaTaskDistribute sysOaTaskDistribute);
|
||||
|
||||
/**
|
||||
* 删除待办(新)
|
||||
|
|
|
@ -32,6 +32,7 @@ import com.snow.framework.util.ShiroUtils;
|
|||
import com.snow.framework.web.domain.common.SysSendMessageDTO;
|
||||
import com.snow.system.domain.SysMessageTemplate;
|
||||
import com.snow.system.domain.SysOaTask;
|
||||
import com.snow.system.domain.SysOaTaskDistribute;
|
||||
import com.snow.system.service.ISysMessageTemplateService;
|
||||
import com.snow.system.service.ISysUserService;
|
||||
import com.snow.system.service.impl.SysConfigServiceImpl;
|
||||
|
@ -92,7 +93,8 @@ public class WorkRecodeServiceImpl extends BaseService implements WorkRecodeServ
|
|||
}
|
||||
|
||||
@Override
|
||||
public String createTodoTask(SysOaTask sysOaTask) {
|
||||
public String createTodoTask(SysOaTaskDistribute sysOaTaskDistribute) {
|
||||
SysOaTask sysOaTask = sysOaTaskDistribute.getSysOaTask();
|
||||
List<String> taskDistributeId = sysOaTask.getTaskDistributeId();
|
||||
|
||||
CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders();
|
||||
|
@ -113,7 +115,7 @@ public class WorkRecodeServiceImpl extends BaseService implements WorkRecodeServ
|
|||
.setPriority(sysOaTask.getPriority())
|
||||
.setNotifyConfigs(notifyConfigs);
|
||||
if (ObjectUtil.isNotNull(sysOaTask.getTaskCompleteTime())) {
|
||||
createTodoTaskRequest.setDueTime(sysOaTask.getTaskCompleteTime().getTime());
|
||||
createTodoTaskRequest.setDueTime(sysOaTaskDistribute.getTaskCompleteTime().getTime());
|
||||
}
|
||||
//执行者id
|
||||
if(CollUtil.isNotEmpty(taskDistributeId)){
|
||||
|
@ -184,7 +186,7 @@ public class WorkRecodeServiceImpl extends BaseService implements WorkRecodeServ
|
|||
.setId(taskId)
|
||||
.setIsDone(status);
|
||||
UpdateTodoTaskExecutorStatusRequest updateTodoTaskExecutorStatusRequest = new UpdateTodoTaskExecutorStatusRequest()
|
||||
.setExecutorStatusList(java.util.Arrays.asList(
|
||||
.setExecutorStatusList(Arrays.asList(
|
||||
executorStatusList0
|
||||
));
|
||||
try {
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.snow.common.constant.SequenceConstants;
|
|||
import com.snow.common.core.text.Convert;
|
||||
import com.snow.common.enums.DingFlowTaskType;
|
||||
import com.snow.common.enums.DingTalkListenerType;
|
||||
import com.snow.common.enums.TaskStatus;
|
||||
import com.snow.common.exception.BusinessException;
|
||||
import com.snow.common.utils.DateUtils;
|
||||
import com.snow.system.domain.SysOaTask;
|
||||
|
@ -83,13 +84,9 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService
|
|||
sysOaTask.setCreateTime(DateUtils.getNowDate());
|
||||
String newSequenceNo = sequenceService.getNewSequenceNo(SequenceConstants.OA_TASK_SEQUENCE);
|
||||
sysOaTask.setTaskNo(newSequenceNo);
|
||||
sysOaTask.setTaskStatus(TaskStatus.UN_FINISH.getCode());
|
||||
List<String> taskDistributeIdList= sysOaTask.getTaskDistributeId();
|
||||
if(CollUtil.isEmpty(taskDistributeIdList)){
|
||||
//待完成
|
||||
sysOaTask.setTaskStatus(DingFlowTaskType.NEW.getCode());
|
||||
}else {
|
||||
//已分配
|
||||
sysOaTask.setTaskStatus(DingFlowTaskType.RUNNING.getCode());
|
||||
if(CollUtil.isNotEmpty(taskDistributeIdList)){
|
||||
taskDistributeIdList.forEach(t->{
|
||||
SysOaTaskDistribute sysOaTaskDistribute=new SysOaTaskDistribute();
|
||||
//任务分配人
|
||||
|
@ -98,11 +95,12 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService
|
|||
sysOaTaskDistribute.setTaskExecuteStatus(DingFlowTaskType.RUNNING.getCode());
|
||||
sysOaTaskDistribute.setCreateBy(sysOaTask.getCreateBy());
|
||||
sysOaTaskDistributeService.insertSysOaTaskDistribute(sysOaTaskDistribute);
|
||||
sysOaTaskDistribute.setSysOaTask(sysOaTask);
|
||||
//事件发送
|
||||
SyncEvent<SysOaTaskDistribute> syncEvent = new SyncEvent(sysOaTaskDistribute, DingTalkListenerType.WORK_RECODE_CREATE);
|
||||
applicationContext.publishEvent(syncEvent);
|
||||
});
|
||||
}
|
||||
//事件发送
|
||||
SyncEvent<SysOaTask> syncEvent = new SyncEvent(sysOaTask, DingTalkListenerType.WORK_RECODE_CREATE);
|
||||
applicationContext.publishEvent(syncEvent);
|
||||
return sysOaTaskMapper.insertSysOaTask(sysOaTask);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue