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; ...@@ -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.ChangeFlowService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService; 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.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.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean; import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode; import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
...@@ -49,7 +50,6 @@ import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum; ...@@ -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.FlowOperationTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum; 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.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.common.util.DateUtils;
import com.netease.mail.yanxuan.change.dal.entity.ChangeConfig; import com.netease.mail.yanxuan.change.dal.entity.ChangeConfig;
import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord; import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
...@@ -74,8 +74,6 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO; ...@@ -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.excel.ChangeFlowExcelDTO;
import com.netease.mail.yanxuan.change.integration.flow.FlowRpcService; 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.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.controller.communal.AjaxResponse;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO;
...@@ -121,7 +119,7 @@ public class ChangeFlowBiz { ...@@ -121,7 +119,7 @@ public class ChangeFlowBiz {
private ChangeRecordMapper changeRecordMapper; private ChangeRecordMapper changeRecordMapper;
@Autowired @Autowired
private TodoRpcService todoRpcService; private TodoService todoService;
public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) { public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) {
...@@ -172,7 +170,9 @@ public class ChangeFlowBiz { ...@@ -172,7 +170,9 @@ public class ChangeFlowBiz {
changeFiles.forEach(file->changeFileService.saveRecord(file)); changeFiles.forEach(file->changeFileService.saveRecord(file));
} }
// 创建代办 // 创建代办
createTodoTask(changeRecord); TaskCreateDTO todoTask = todoService.createTodoTask(changeRecord);
changeRecord.setTodoId(todoTask.getId());
changeFlowService.updateRecord(changeRecord);
// 如果发起人=变更负责人 // 如果发起人=变更负责人
if (changeCommander.equals(uid)) { if (changeCommander.equals(uid)) {
log.debug("[createAndSubmit] changeCommander:{}, uid:{}", changeCommander, uid); log.debug("[createAndSubmit] changeCommander:{}, uid:{}", changeCommander, uid);
...@@ -192,52 +192,6 @@ public class ChangeFlowBiz { ...@@ -192,52 +192,6 @@ public class ChangeFlowBiz {
return flowId; 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) { private List<ChangeFile> buildChangeFileRecord(Long changeRecordId, List<ChangeFlowFile> files) {
return files.stream().map(f -> { return files.stream().map(f -> {
ChangeFile changeFile = new ChangeFile(); ChangeFile changeFile = new ChangeFile();
...@@ -530,8 +484,7 @@ public class ChangeFlowBiz { ...@@ -530,8 +484,7 @@ public class ChangeFlowBiz {
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
changeExecRecordList.forEach(exec->changeFlowExecService.update(exec)); changeExecRecordList.forEach(exec->changeFlowExecService.update(exec));
// todo: 完成代办 todoService.finishTodoTask(changeRecord);
finishSupplierTodoTask(changeRecord);
// todo:完结工单,发送邮件 // todo:完结工单,发送邮件
return confirmNode; return confirmNode;
case CANCEL: case CANCEL:
...@@ -545,7 +498,7 @@ public class ChangeFlowBiz { ...@@ -545,7 +498,7 @@ public class ChangeFlowBiz {
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
// todo: 完成代办 // todo: 完成代办
finishSupplierTodoTask(changeRecord); todoService.finishTodoTask(changeRecord);
// todo:完结工单,发送邮件 // todo:完结工单,发送邮件
return cancelNode; return cancelNode;
case DELAY: case DELAY:
...@@ -631,7 +584,7 @@ public class ChangeFlowBiz { ...@@ -631,7 +584,7 @@ public class ChangeFlowBiz {
changeRecord.setCancelReason(req.getCancelReason()); changeRecord.setCancelReason(req.getCancelReason());
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
// todo: 完成代办 // todo: 完成代办
finishSupplierTodoTask(changeRecord); todoService.finishTodoTask(changeRecord);
// todo:取消501节点,取消工单,发送邮件 // todo:取消501节点,取消工单,发送邮件
return changeFlowService.updateRecord(changeRecord); 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; ...@@ -5,10 +5,10 @@ package com.netease.mail.yanxuan.change.common.enums;
* *
* @author dmx * @author dmx
*/ */
public enum SupplierTodoTaskTypeEnum { public enum TodoTaskTypeEnum {
QC_CHANGE("101", "变更工单处理"); QC_CHANGE("101", "变更工单处理");
SupplierTodoTaskTypeEnum(String value, String desc) { TodoTaskTypeEnum(String value, String desc) {
this.value = value; this.value = value;
this.desc = desc; this.desc = desc;
} }
......
...@@ -163,6 +163,11 @@ public class ChangeRecord { ...@@ -163,6 +163,11 @@ public class ChangeRecord {
private String creator; private String creator;
/** /**
* 待办id
*/
private Integer todoId;
/**
* 创建时间 * 创建时间
*/ */
private Long createTime; private Long createTime;
......
...@@ -20,7 +20,7 @@ public class TaskCreateDTO { ...@@ -20,7 +20,7 @@ public class TaskCreateDTO {
/** /**
* 待办id * 待办id
*/ */
private Long id; private Integer id;
/** /**
* 废弃 * 废弃
*/ */
......
...@@ -8,10 +8,13 @@ package com.netease.mail.yanxuan.change.integration.todo; ...@@ -8,10 +8,13 @@ package com.netease.mail.yanxuan.change.integration.todo;
import com.netease.mail.yanxuan.change.common.enums.OperateTypeEnum; import com.netease.mail.yanxuan.change.common.enums.OperateTypeEnum;
import lombok.Data;
/** /**
* @Author zcwang * @Author zcwang
* @Date 2022/11/28 * @Date 2022/11/28
*/ */
@Data
public class TaskProcessParamVO { public class TaskProcessParamVO {
/** /**
......
...@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.biz.biz.ChangeFlowBiz; 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.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.dal.entity.ChangeRecord; import com.netease.mail.yanxuan.change.dal.entity.ChangeRecord;
...@@ -28,19 +29,19 @@ import lombok.extern.slf4j.Slf4j; ...@@ -28,19 +29,19 @@ import lombok.extern.slf4j.Slf4j;
public class TestController { public class TestController {
@Autowired @Autowired
private ChangeFlowBiz changeFlowBiz; private TodoService todoService;
@PostMapping("/createToDo") @PostMapping("/createToDo")
public AjaxResult<Void> createTodoTask(ChangeRecord entity) { public AjaxResult<Void> createTodoTask(ChangeRecord entity) {
log.info("[createToDoTask] entity:{}", JSON.toJSONString(entity)); log.info("[createToDoTask] entity:{}", JSON.toJSONString(entity));
changeFlowBiz.createTodoTask(entity); todoService.createTodoTask(entity);
return AjaxResult.success(); return AjaxResult.success();
} }
@PostMapping("/finishToDo") @PostMapping("/finishToDo")
public AjaxResult<Void> finishTodoTask(ChangeRecord entity) { public AjaxResult<Void> finishTodoTask(ChangeRecord entity) {
log.info("[createToDoTask] entity:{}", JSON.toJSONString(entity)); log.info("[createToDoTask] entity:{}", JSON.toJSONString(entity));
changeFlowBiz.createTodoTask(entity); todoService.finishTodoTask(entity);
return AjaxResult.success(); 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