Commit fccbd5fb by “zcwang”

add: 待办

parent 45843879
...@@ -390,11 +390,16 @@ ...@@ -390,11 +390,16 @@
</exclusions> </exclusions>
</dependency> </dependency>
<!--qc --> <!--qc -->
<!-- <dependency>--> <dependency>
<!-- <groupId>com.netease.yanxuan</groupId>--> <groupId>com.netease.yanxuan</groupId>
<!-- <artifactId>yanxuan-qc-service-client</artifactId>--> <artifactId>yanxuan-qc-service-client</artifactId>
<!-- <version>2.0.0-SNAPSHOT</version>--> <version>2.0.0-SNAPSHOT</version>
<!-- </dependency>--> </dependency>
<dependency>
<groupId>com.netease.yanxuan</groupId>
<artifactId>yanxuan-qc-business-lib</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>com.netease.yanxuan</groupId>--> <!-- <groupId>com.netease.yanxuan</groupId>-->
<!-- <artifactId>yanxuan-qc-parent</artifactId>--> <!-- <artifactId>yanxuan-qc-parent</artifactId>-->
......
...@@ -19,6 +19,7 @@ import java.util.UUID; ...@@ -19,6 +19,7 @@ import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -48,6 +49,7 @@ import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum; ...@@ -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.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;
...@@ -59,6 +61,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq; ...@@ -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.ChangeExecProject;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq; 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.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.ChangeFlowFile;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowListQueryReq; 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.req.ChangeFlowSubmitReq;
...@@ -68,6 +71,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO; ...@@ -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.dal.meta.model.vo.ItemVO;
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.qc.service.client.remote.SupplierTodoClient;
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;
...@@ -112,6 +116,9 @@ public class ChangeFlowBiz { ...@@ -112,6 +116,9 @@ public class ChangeFlowBiz {
@Autowired @Autowired
private ChangeRecordMapper changeRecordMapper; private ChangeRecordMapper changeRecordMapper;
@Autowired
private SupplierTodoClient supplierTodoClient;
public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) { public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) {
String uid = RequestLocalBean.getUid(); String uid = RequestLocalBean.getUid();
log.info("[create] createReq={}, uid:{}", JSON.toJSONString(changeFlowCreateReq), uid); log.info("[create] createReq={}, uid:{}", JSON.toJSONString(changeFlowCreateReq), uid);
...@@ -159,6 +166,8 @@ public class ChangeFlowBiz { ...@@ -159,6 +166,8 @@ public class ChangeFlowBiz {
List<ChangeFile> changeFiles = buildChangeFileRecord(changeRecord.getId(), files); List<ChangeFile> changeFiles = buildChangeFileRecord(changeRecord.getId(), files);
changeFiles.forEach(file->changeFileService.saveRecord(file)); changeFiles.forEach(file->changeFileService.saveRecord(file));
} }
// 创建代办
createSupplierTodoTask(changeRecord);
// 如果发起人=变更负责人 // 如果发起人=变更负责人
if (changeCommander.equals(uid)) { if (changeCommander.equals(uid)) {
log.debug("[createAndSubmit] changeCommander:{}, uid:{}", changeCommander, uid); log.debug("[createAndSubmit] changeCommander:{}, uid:{}", changeCommander, uid);
...@@ -178,6 +187,37 @@ public class ChangeFlowBiz { ...@@ -178,6 +187,37 @@ public class ChangeFlowBiz {
return flowId; 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) { 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();
...@@ -470,6 +510,8 @@ public class ChangeFlowBiz { ...@@ -470,6 +510,8 @@ 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: 完成代办
finishSupplierTodoTask(changeRecord);
// todo:完结工单,发送邮件 // todo:完结工单,发送邮件
return confirmNode; return confirmNode;
case CANCEL: case CANCEL:
...@@ -482,6 +524,8 @@ public class ChangeFlowBiz { ...@@ -482,6 +524,8 @@ public class ChangeFlowBiz {
changeRecord.setFlowNode(cancelNode); changeRecord.setFlowNode(cancelNode);
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
// todo:完结工单,发送邮件 // todo:完结工单,发送邮件
return cancelNode; return cancelNode;
case DELAY: case DELAY:
...@@ -566,6 +610,8 @@ public class ChangeFlowBiz { ...@@ -566,6 +610,8 @@ public class ChangeFlowBiz {
changeRecord.setState(ChangeStatusEnum.CANCEL.getStatus()); changeRecord.setState(ChangeStatusEnum.CANCEL.getStatus());
changeRecord.setCancelReason(req.getCancelReason()); changeRecord.setCancelReason(req.getCancelReason());
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
// todo: 完成代办
finishSupplierTodoTask(changeRecord);
// todo:取消501节点,取消工单,发送邮件 // todo:取消501节点,取消工单,发送邮件
return changeFlowService.updateRecord(changeRecord); return changeFlowService.updateRecord(changeRecord);
} }
...@@ -754,8 +800,7 @@ public class ChangeFlowBiz { ...@@ -754,8 +800,7 @@ public class ChangeFlowBiz {
} }
} }
public void deliver() { public void deliver(@Valid ChangeFlowDeliverReq req) {
// todo:501节点,转交工单,发送邮箱 // 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; ...@@ -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.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq; 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.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.ChangeFlowListQueryReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowSubmitReq; import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowSubmitReq;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO; import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO;
...@@ -126,8 +127,8 @@ public class ChangeFlowController { ...@@ -126,8 +127,8 @@ public class ChangeFlowController {
* @return * @return
*/ */
@PostMapping("/deliver") @PostMapping("/deliver")
public AjaxResult<Void> deliver() { public AjaxResult<Void> deliver(@RequestBody @Valid ChangeFlowDeliverReq req) {
changeFlowBiz.deliver(); changeFlowBiz.deliver(req);
return AjaxResult.success(); 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