Commit fccbd5fb by “zcwang”

add: 待办

parent 45843879
......@@ -390,11 +390,16 @@
</exclusions>
</dependency>
<!--qc -->
<!-- <dependency>-->
<!-- <groupId>com.netease.yanxuan</groupId>-->
<!-- <artifactId>yanxuan-qc-service-client</artifactId>-->
<!-- <version>2.0.0-SNAPSHOT</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.netease.yanxuan</groupId>
<artifactId>yanxuan-qc-service-client</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.netease.yanxuan</groupId>
<artifactId>yanxuan-qc-business-lib</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.netease.yanxuan</groupId>-->
<!-- <artifactId>yanxuan-qc-parent</artifactId>-->
......
......@@ -19,6 +19,7 @@ import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -48,6 +49,7 @@ 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;
......@@ -59,6 +61,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecProject;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCreateReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowDeliverReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowFile;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowListQueryReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowSubmitReq;
......@@ -68,6 +71,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO;
import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO;
import com.netease.mail.yanxuan.change.integration.flow.FlowRpcService;
import com.netease.mail.yanxuan.qc.service.client.remote.SupplierTodoClient;
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;
......@@ -112,6 +116,9 @@ public class ChangeFlowBiz {
@Autowired
private ChangeRecordMapper changeRecordMapper;
@Autowired
private SupplierTodoClient supplierTodoClient;
public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) {
String uid = RequestLocalBean.getUid();
log.info("[create] createReq={}, uid:{}", JSON.toJSONString(changeFlowCreateReq), uid);
......@@ -159,6 +166,8 @@ public class ChangeFlowBiz {
List<ChangeFile> changeFiles = buildChangeFileRecord(changeRecord.getId(), files);
changeFiles.forEach(file->changeFileService.saveRecord(file));
}
// 创建代办
createSupplierTodoTask(changeRecord);
// 如果发起人=变更负责人
if (changeCommander.equals(uid)) {
log.debug("[createAndSubmit] changeCommander:{}, uid:{}", changeCommander, uid);
......@@ -178,6 +187,37 @@ public class ChangeFlowBiz {
return flowId;
}
/**
* 创建代办
* @param entity
*/
private void createSupplierTodoTask(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);
supplierTodoClient.createTodoTask("变更管理", changeCommander, flowId, flowId,
SupplierTodoTaskTypeEnum.QC_CHANGE.getValue(), businessContent);
}
}
/**
* 完成代办
* @param entity
*/
private 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)) {
supplierTodoClient.finishTodoTask(changeCommander, flowId,
SupplierTodoTaskTypeEnum.QC_CHANGE.getValue());
}
}
private List<ChangeFile> buildChangeFileRecord(Long changeRecordId, List<ChangeFlowFile> files) {
return files.stream().map(f -> {
ChangeFile changeFile = new ChangeFile();
......@@ -470,6 +510,8 @@ public class ChangeFlowBiz {
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord);
changeExecRecordList.forEach(exec->changeFlowExecService.update(exec));
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
// todo:完结工单,发送邮件
return confirmNode;
case CANCEL:
......@@ -482,6 +524,8 @@ public class ChangeFlowBiz {
changeRecord.setFlowNode(cancelNode);
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord);
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
// todo:完结工单,发送邮件
return cancelNode;
case DELAY:
......@@ -566,6 +610,8 @@ public class ChangeFlowBiz {
changeRecord.setState(ChangeStatusEnum.CANCEL.getStatus());
changeRecord.setCancelReason(req.getCancelReason());
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
// todo:取消501节点,取消工单,发送邮件
return changeFlowService.updateRecord(changeRecord);
}
......@@ -754,8 +800,7 @@ public class ChangeFlowBiz {
}
}
public void deliver() {
public void deliver(@Valid ChangeFlowDeliverReq req) {
// todo:501节点,转交工单,发送邮箱
}
......
package com.netease.mail.yanxuan.change.common.enums;
/**
* 待办任务类型枚举值
*
* @author dmx
*/
public enum SupplierTodoTaskTypeEnum {
QC_CHANGE(200, "变更工单处理");
SupplierTodoTaskTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
private final Integer value;
private final String desc;
public Integer getValue() {
return value;
}
public String getDesc() {
return desc;
}
}
/**
* @(#)ChangeFlowDeliverReq.java, 2022/11/25.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.dal.meta.model.req;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* @Author zcwang
* @Date 2022/11/25
*/
@Data
public class ChangeFlowDeliverReq {
/**
* 工单id
*/
@NotNull(message = "工单id不能为空")
private Long flowId;
/**
* 变更负责人
*/
@NotBlank(message = "转交人不可为空")
private String deliverUser;
/**
* 转交备注
*/
@NotBlank(message = "转交备注不可为空")
private String remark;
}
\ No newline at end of file
......@@ -24,6 +24,7 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCreateReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowDeliverReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowListQueryReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowSubmitReq;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO;
......@@ -126,8 +127,8 @@ public class ChangeFlowController {
* @return
*/
@PostMapping("/deliver")
public AjaxResult<Void> deliver() {
changeFlowBiz.deliver();
public AjaxResult<Void> deliver(@RequestBody @Valid ChangeFlowDeliverReq req) {
changeFlowBiz.deliver(req);
return AjaxResult.success();
}
......
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