Commit df39b245 by jx-art

Merge remote-tracking branch 'origin/feature-changeFlow-221110' into feature-changeFlow-221110

parents 3386e5ba e38d3619
......@@ -38,6 +38,7 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowExecService;
import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeTypeService;
import com.netease.mail.yanxuan.change.biz.service.rpc.TodoService;
import com.netease.mail.yanxuan.change.common.bean.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
......@@ -49,7 +50,6 @@ import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowOperationTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
import com.netease.mail.yanxuan.change.common.enums.NeedFileEnum;
import com.netease.mail.yanxuan.change.common.enums.SupplierTodoTaskTypeEnum;
import com.netease.mail.yanxuan.change.common.util.DateUtils;
import com.netease.mail.yanxuan.change.dal.entity.ChangeConfig;
import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
......@@ -74,8 +74,6 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO;
import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO;
import com.netease.mail.yanxuan.change.integration.flow.FlowRpcService;
import com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO;
import com.netease.mail.yanxuan.change.integration.todo.TaskCreateParamVO;
import com.netease.mail.yanxuan.change.integration.todo.TodoRpcService;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO;
......@@ -121,7 +119,7 @@ public class ChangeFlowBiz {
private ChangeRecordMapper changeRecordMapper;
@Autowired
private TodoRpcService todoRpcService;
private TodoService todoService;
public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) {
......@@ -172,7 +170,9 @@ public class ChangeFlowBiz {
changeFiles.forEach(file->changeFileService.saveRecord(file));
}
// 创建代办
createTodoTask(changeRecord);
TaskCreateDTO todoTask = todoService.createTodoTask(changeRecord);
changeRecord.setTodoId(todoTask.getId());
changeFlowService.updateRecord(changeRecord);
// 如果发起人=变更负责人
if (changeCommander.equals(uid)) {
log.debug("[createAndSubmit] changeCommander:{}, uid:{}", changeCommander, uid);
......@@ -192,52 +192,6 @@ public class ChangeFlowBiz {
return flowId;
}
/**
* 创建代办
* @param entity
*/
public void createTodoTask(ChangeRecord entity) {
String changeCommander = entity.getChangeCommander();
if (StringUtils.isNotEmpty(changeCommander)) {
String flowId = String.valueOf(entity.getFlowId());
Map<String, Object> businessContent = new HashMap<>();
businessContent.put("nodeTitle", entity.getChangeContent());
businessContent.put("taskFlowId", flowId);
businessContent.put("newFlow", flowId);
TaskCreateParamVO taskCreateParamVO = new TaskCreateParamVO();
taskCreateParamVO.setBusinessKey(flowId);
taskCreateParamVO.setContent(JSON.toJSONString(businessContent));
taskCreateParamVO.setProduct(CommonConstants.FLOWX_PRODUCT);
taskCreateParamVO.setTaskCreator(changeCommander);
taskCreateParamVO.setTaskHandler(changeCommander);
taskCreateParamVO.setTaskHandlerName(changeCommander);
taskCreateParamVO.setTaskTitle("测试");
taskCreateParamVO.setTaskTypeKey(SupplierTodoTaskTypeEnum.QC_CHANGE.getValue());
TaskCreateDTO taskCreateDTO;
AjaxResponse<TaskCreateDTO> taskCreateResponse = todoRpcService.create(taskCreateParamVO);
if (ResponseCodeEnum.SUCCESS.getCode() == taskCreateResponse.getCode()) {
taskCreateDTO = taskCreateResponse.getData();
log.info("[createTodoTask] taskCreateDTO={}", JSON.toJSONString(taskCreateDTO));
} else {
log.error("[createTodoTask] create todo failed, param={}, errMsg={}", JSON.toJSONString(taskCreateParamVO),
JSON.toJSONString(taskCreateResponse));
throw ExceptionFactory.createBiz(ResponseCode.CREATE_TODO_ERROR, "查询工单详情错误");
}
}
}
/**
* 完成代办
* @param entity
*/
public void finishSupplierTodoTask(ChangeRecord entity) {
String changeCommander = entity.getChangeCommander();
String flowId = String.valueOf(entity.getFlowId());
log.info("[finishSupplierTodoTask] taskFlowId={}, supplierId={}", flowId, changeCommander);
if (StringUtils.isNotEmpty(changeCommander)) {
}
}
private List<ChangeFile> buildChangeFileRecord(Long changeRecordId, List<ChangeFlowFile> files) {
return files.stream().map(f -> {
ChangeFile changeFile = new ChangeFile();
......@@ -530,8 +484,7 @@ public class ChangeFlowBiz {
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord);
changeExecRecordList.forEach(exec->changeFlowExecService.update(exec));
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
todoService.finishTodoTask(changeRecord);
// todo:完结工单,发送邮件
return confirmNode;
case CANCEL:
......@@ -545,7 +498,7 @@ public class ChangeFlowBiz {
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord);
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
todoService.finishTodoTask(changeRecord);
// todo:完结工单,发送邮件
return cancelNode;
case DELAY:
......@@ -631,7 +584,7 @@ public class ChangeFlowBiz {
changeRecord.setCancelReason(req.getCancelReason());
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
todoService.finishTodoTask(changeRecord);
// todo:取消501节点,取消工单,发送邮件
return changeFlowService.updateRecord(changeRecord);
}
......
/**
* @(#)TodoService.java, 2022/11/29.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.biz.service.rpc;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.biz.meta.exception.ExceptionFactory;
import com.netease.mail.yanxuan.change.common.bean.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
import com.netease.mail.yanxuan.change.common.bean.ResponseCodeEnum;
import com.netease.mail.yanxuan.change.common.enums.OperateTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.TodoTaskTypeEnum;
import com.netease.mail.yanxuan.change.dal.entity.ChangeRecord;
import com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO;
import com.netease.mail.yanxuan.change.integration.todo.TaskCreateParamVO;
import com.netease.mail.yanxuan.change.integration.todo.TaskProcessParamVO;
import com.netease.mail.yanxuan.change.integration.todo.TodoRpcService;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import lombok.extern.slf4j.Slf4j;
/**
* @Author zcwang
* @Date 2022/11/29
*/
@Component
@Slf4j
public class TodoService {
@Autowired
private TodoRpcService todoRpcService;
/**
* 创建代办
* @param entity
*/
public TaskCreateDTO createTodoTask(ChangeRecord entity) {
String changeCommander = entity.getChangeCommander();
TaskCreateDTO taskCreateDTO = new TaskCreateDTO();
if (StringUtils.isNotEmpty(changeCommander)) {
String flowId = String.valueOf(entity.getFlowId());
Map<String, Object> businessContent = new HashMap<>();
businessContent.put("nodeTitle", entity.getChangeContent());
businessContent.put("taskFlowId", flowId);
businessContent.put("newFlow", flowId);
TaskCreateParamVO taskCreateParamVO = new TaskCreateParamVO();
taskCreateParamVO.setBusinessKey(flowId);
taskCreateParamVO.setContent(JSON.toJSONString(businessContent));
taskCreateParamVO.setProduct(CommonConstants.FLOWX_PRODUCT);
taskCreateParamVO.setTaskCreator(changeCommander);
taskCreateParamVO.setTaskHandler(changeCommander);
taskCreateParamVO.setTaskHandlerName(changeCommander);
taskCreateParamVO.setTaskTitle("测试");
taskCreateParamVO.setTaskTypeKey(TodoTaskTypeEnum.QC_CHANGE.getValue());
AjaxResponse<TaskCreateDTO> taskCreateResponse = todoRpcService.create(taskCreateParamVO);
if (ResponseCodeEnum.SUCCESS.getCode() == taskCreateResponse.getCode()) {
taskCreateDTO = taskCreateResponse.getData();
log.info("[createTodoTask] taskCreateDTO={}", JSON.toJSONString(taskCreateDTO));
} else {
log.error("[createTodoTask] create todo failed, param={}, errMsg={}", JSON.toJSONString(taskCreateParamVO),
JSON.toJSONString(taskCreateResponse));
throw ExceptionFactory.createBiz(ResponseCode.CREATE_TODO_ERROR, "查询工单详情错误");
}
}
return taskCreateDTO;
}
/**
* 完成代办
* @param entity
*/
public void finishTodoTask(ChangeRecord entity) {
String changeCommander = entity.getChangeCommander();
String flowId = String.valueOf(entity.getFlowId());
log.info("[finishSupplierTodoTask] taskFlowId={}, supplierId={}", flowId, changeCommander);
if (StringUtils.isNotEmpty(changeCommander)) {
TaskProcessParamVO taskProcessParamVO = new TaskProcessParamVO();
taskProcessParamVO.setBusinessKey(flowId);
taskProcessParamVO.setOperateType(OperateTypeEnum.FINISH.getType());
taskProcessParamVO.setOperator(changeCommander);
taskProcessParamVO.setOperatorName(changeCommander);
taskProcessParamVO.setProduct(CommonConstants.FLOWX_PRODUCT);
taskProcessParamVO.setTaskId(entity.getTodoId());
todoRpcService.progress(taskProcessParamVO);
}
}
}
\ No newline at end of file
......@@ -5,10 +5,10 @@ package com.netease.mail.yanxuan.change.common.enums;
*
* @author dmx
*/
public enum SupplierTodoTaskTypeEnum {
public enum TodoTaskTypeEnum {
QC_CHANGE("101", "变更工单处理");
SupplierTodoTaskTypeEnum(String value, String desc) {
TodoTaskTypeEnum(String value, String desc) {
this.value = value;
this.desc = desc;
}
......
......@@ -163,6 +163,11 @@ public class ChangeRecord {
private String creator;
/**
* 待办id
*/
private Integer todoId;
/**
* 创建时间
*/
private Long createTime;
......
......@@ -20,7 +20,7 @@ public class TaskCreateDTO {
/**
* 待办id
*/
private Long id;
private Integer id;
/**
* 废弃
*/
......
......@@ -8,10 +8,13 @@ package com.netease.mail.yanxuan.change.integration.todo;
import com.netease.mail.yanxuan.change.common.enums.OperateTypeEnum;
import lombok.Data;
/**
* @Author zcwang
* @Date 2022/11/28
*/
@Data
public class TaskProcessParamVO {
/**
......
......@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.biz.biz.ChangeFlowBiz;
import com.netease.mail.yanxuan.change.biz.service.rpc.TodoService;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.dal.entity.ChangeRecord;
......@@ -28,19 +29,19 @@ import lombok.extern.slf4j.Slf4j;
public class TestController {
@Autowired
private ChangeFlowBiz changeFlowBiz;
private TodoService todoService;
@PostMapping("/createToDo")
public AjaxResult<Void> createTodoTask(ChangeRecord entity) {
log.info("[createToDoTask] entity:{}", JSON.toJSONString(entity));
changeFlowBiz.createTodoTask(entity);
todoService.createTodoTask(entity);
return AjaxResult.success();
}
@PostMapping("/finishToDo")
public AjaxResult<Void> finishTodoTask(ChangeRecord entity) {
log.info("[createToDoTask] entity:{}", JSON.toJSONString(entity));
changeFlowBiz.createTodoTask(entity);
todoService.finishTodoTask(entity);
return AjaxResult.success();
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment