Merge branch 'master' into feature/REQ-3540
This commit is contained in:
commit
d7dc42a8f9
@ -4,6 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.framework.domain.web.result.PageData;
|
||||
import cn.axzo.nanopart.visa.api.changerecord.ChangeRecordApi;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.request.BizActivityAssigneeDecisionReq;
|
||||
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
|
||||
@ -30,6 +31,7 @@ import cn.axzo.nanopart.visa.server.service.ChangeRecordBillService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordConfirmService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordService;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
@ -147,7 +149,7 @@ public class ChangeRecordController implements ChangeRecordApi {
|
||||
|
||||
@Override
|
||||
public ApiResult<List<VisaChangeApproveCreateReq.ApprovePersonInfo>> getVisaAllConfirm(FetchVisaAllConfirmReq req) {
|
||||
return ApiResult.ok(changeRecordConfirmService.listAllConfirmByVisaId(req.getVisaId()));
|
||||
return ApiResult.ok(changeRecordConfirmService.listAllConfirmByVisaId(req.getVisaId(), Lists.newArrayList(VisaConfirmBizTypeEnum.CONFIRM)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -46,6 +46,8 @@ public class VisaConfirmDto {
|
||||
*/
|
||||
private VisaConfirmBizTypeEnum bizType;
|
||||
|
||||
private List<VisaConfirmBizTypeEnum> bizTypes;
|
||||
|
||||
/**
|
||||
* 确认人
|
||||
*/
|
||||
|
||||
@ -1,11 +1,14 @@
|
||||
package cn.axzo.nanopart.visa.server.mq.listener.workflow.process;
|
||||
|
||||
import cn.axzo.framework.jackson.utility.JSON;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventProducer;
|
||||
import cn.axzo.msg.center.api.MessageAPIV3;
|
||||
import cn.axzo.msg.center.api.request.v3.MessageSendReqV3;
|
||||
import cn.axzo.msg.center.api.response.v3.MessageSendRespV3;
|
||||
import cn.axzo.msg.center.service.dto.PersonV3DTO;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
@ -18,14 +21,17 @@ import cn.axzo.nanopart.visa.server.mq.listener.workflow.BasicLogSupport;
|
||||
import cn.axzo.nanopart.visa.server.mq.producer.VisaChangeLogPayload;
|
||||
import cn.axzo.nanopart.visa.server.rpc.VisaOrganizationalNodeUserGateway;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordBillService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordConfirmService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordRelationService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordService;
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import cn.axzo.workflow.common.model.response.mq.ProcessInstanceDTO;
|
||||
import cn.axzo.workflow.starter.handler.ProcessInstanceEventHandler;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.groovy.util.Maps;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -35,6 +41,7 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.FORM_FIELD_TOPIC;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.FORM_FIELD_WORKSPACE_NAME;
|
||||
@ -54,11 +61,13 @@ import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.TECHNOLOGY_APPROVED;
|
||||
* @author wangli
|
||||
* @since 2025-01-17 11:35
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implements ProcessInstanceEventHandler {
|
||||
protected final ChangeRecordService changeRecordService;
|
||||
protected final ChangeRecordRelationService changeRecordRelationService;
|
||||
protected final ChangeRecordBillService changeRecordBillService;
|
||||
protected final ChangeRecordConfirmService changeRecordConfirmService;
|
||||
protected final MessageAPIV3 noticeApi;
|
||||
public final static List<String> SUPPORTED_DEFINITION_KEYS = Lists.newArrayList(
|
||||
DESIGN_CHANGE.getProcessDefinitionKey(),
|
||||
@ -72,11 +81,14 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
ChangeRecordService changeRecordService,
|
||||
ChangeRecordRelationService changeRecordRelationService,
|
||||
ChangeRecordBillService changeRecordBillService,
|
||||
MessageAPIV3 noticeApi, RefreshableConfiguration refreshableConfiguration) {
|
||||
ChangeRecordConfirmService changeRecordConfirmService,
|
||||
MessageAPIV3 noticeApi,
|
||||
RefreshableConfiguration refreshableConfiguration) {
|
||||
super(eventProducer, visaOrganizationalNodeUserGateway);
|
||||
this.changeRecordService = changeRecordService;
|
||||
this.changeRecordRelationService = changeRecordRelationService;
|
||||
this.changeRecordBillService = changeRecordBillService;
|
||||
this.changeRecordConfirmService = changeRecordConfirmService;
|
||||
this.noticeApi = noticeApi;
|
||||
this.refreshableConfiguration = refreshableConfiguration;
|
||||
}
|
||||
@ -105,6 +117,10 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
public void onCompleted(ProcessInstanceDTO dto) {
|
||||
String visaTypeDesc = parseVisaType(dto);
|
||||
|
||||
log.info("send complete notice");
|
||||
sendCompleteNotice(dto);
|
||||
log.info("send complete notice success");
|
||||
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.APPROVED);
|
||||
|
||||
changeRecordService.lambdaUpdate()
|
||||
@ -112,15 +128,23 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
.set(ChangeRecord::getStampStatus, VisaStampStatusEnum.UNPRINTED.name())
|
||||
.update();
|
||||
|
||||
}
|
||||
|
||||
private void sendCompleteNotice(ProcessInstanceDTO dto) {
|
||||
Map<String, Object> variables = dto.getVariables();
|
||||
BpmnTaskDelegateAssigner initiator = dto.getInitiator();
|
||||
MessageSendReqV3 completeNotice = new MessageSendReqV3();
|
||||
completeNotice.setSender(PersonV3DTO.builder().build());
|
||||
completeNotice.setReceivers(Lists.newArrayList(PersonV3DTO.builder().build()));
|
||||
completeNotice.setReceivers(queryConfirm(dto));
|
||||
completeNotice.setBizEventMappingCode(refreshableConfiguration.getProcessInstanceCompleteMsgEventCode());
|
||||
completeNotice.setBizCode(dto.getBusinessKey());
|
||||
String visaType = (String) variables.getOrDefault(WORKFLOW_VAR_VISA_TYPE_KEY, "");
|
||||
String VisaTypeDesc = StringUtils.hasText(visaType) ? VisaTypeEnum.valueOf(visaType).getDesc() : "";
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
completeNotice.setBizExtParams(new JSONObject(Maps.of(
|
||||
"initiatorName", initiator.getAssignerName(),
|
||||
"topic", variables.getOrDefault(FORM_FIELD_TOPIC, ""),
|
||||
"visaTypeDesc", VisaTypeDesc,
|
||||
"workspaceName", variables.getOrDefault(FORM_FIELD_WORKSPACE_NAME, ""),
|
||||
"time", sdf.format(new Date())
|
||||
)));
|
||||
@ -129,7 +153,22 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
"ouId", variables.getOrDefault(IM_GROUP_BIZ_INFO_INITIATOR_OU_ID, ""),
|
||||
"workspaceId", variables.getOrDefault(IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID, "")
|
||||
)));
|
||||
noticeApi.send(completeNotice);
|
||||
CommonResponse<MessageSendRespV3> response = noticeApi.send(completeNotice);
|
||||
if (Objects.nonNull(response) && response.getCode() == 200) {
|
||||
log.info("send complete notice result: {}", JSON.toJSONString(response.getData()));
|
||||
} else {
|
||||
log.error("send complete notice failed: {}", Objects.isNull(response) ? "response is null" : JSON.toJSONString(response.getMsg()));
|
||||
}
|
||||
}
|
||||
|
||||
private List<PersonV3DTO> queryConfirm(ProcessInstanceDTO dto) {
|
||||
Long visaId = Long.valueOf(dto.getBusinessKey());
|
||||
return changeRecordConfirmService.listAllConfirmByVisaId(visaId, Lists.newArrayList(VisaConfirmBizTypeEnum.CREATE, VisaConfirmBizTypeEnum.CONFIRM))
|
||||
.stream().map(e -> PersonV3DTO.builder()
|
||||
.id(e.getPersonId())
|
||||
.name(e.getRealName())
|
||||
.imReceiveModel(new PersonV3DTO.ReceiveModel(e.getOuId(), e.getWorkspaceId()))
|
||||
.build()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -160,6 +199,10 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
*/
|
||||
@Override
|
||||
public void onRejected(ProcessInstanceDTO dto) {
|
||||
log.info("send reject notice");
|
||||
sendRejectNotice(dto);
|
||||
log.info("send reject notice success");
|
||||
|
||||
BpmnTaskDelegateAssigner lastOperationAssigner = dto.getLastOperationAssigner();
|
||||
ChangeRecordLog log = ChangeRecordLog.builder()
|
||||
.visaId(Long.valueOf(dto.getBusinessKey()))
|
||||
@ -171,14 +214,23 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.REJECTED);
|
||||
|
||||
}
|
||||
|
||||
private void sendRejectNotice(ProcessInstanceDTO dto) {
|
||||
Map<String, Object> variables = dto.getVariables();
|
||||
BpmnTaskDelegateAssigner initiator = dto.getInitiator();
|
||||
MessageSendReqV3 rejectNotice = new MessageSendReqV3();
|
||||
rejectNotice.setSender(PersonV3DTO.builder().build());
|
||||
rejectNotice.setReceivers(Lists.newArrayList(PersonV3DTO.builder().build()));
|
||||
rejectNotice.setBizEventMappingCode(refreshableConfiguration.getProcessInstanceCompleteMsgEventCode());
|
||||
rejectNotice.setReceivers(queryConfirm(dto));
|
||||
rejectNotice.setBizEventMappingCode(refreshableConfiguration.getProcessInstanceRejectMsgEventCode());
|
||||
rejectNotice.setBizCode(dto.getBusinessKey());
|
||||
|
||||
String visaType = (String) variables.getOrDefault(WORKFLOW_VAR_VISA_TYPE_KEY, "");
|
||||
String VisaTypeDesc = StringUtils.hasText(visaType) ? VisaTypeEnum.valueOf(visaType).getDesc() : "";
|
||||
rejectNotice.setBizExtParams(new JSONObject(Maps.of(
|
||||
"initiatorName", initiator.getAssignerName(),
|
||||
"topic", variables.getOrDefault(FORM_FIELD_TOPIC, ""),
|
||||
"visaTypeDesc", VisaTypeDesc,
|
||||
"workspaceName", variables.getOrDefault(FORM_FIELD_WORKSPACE_NAME, ""),
|
||||
"reason", dto.getReason()
|
||||
)));
|
||||
@ -187,7 +239,13 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
"ouId", variables.getOrDefault(IM_GROUP_BIZ_INFO_INITIATOR_OU_ID, ""),
|
||||
"workspaceId", variables.getOrDefault(IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID, "")
|
||||
)));
|
||||
noticeApi.send(rejectNotice);
|
||||
|
||||
CommonResponse<MessageSendRespV3> response = noticeApi.send(rejectNotice);
|
||||
if (Objects.nonNull(response) && response.getCode() == 200) {
|
||||
log.info("send reject notice result: {}", JSON.toJSONString(response.getData()));
|
||||
} else {
|
||||
log.error("send reject notice failed: {}", Objects.isNull(response) ? "response is null" : JSON.toJSONString(response.getMsg()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -76,7 +76,7 @@ public interface ChangeRecordConfirmService {
|
||||
* @param visaId
|
||||
* @return
|
||||
*/
|
||||
List<VisaChangeApproveCreateReq.ApprovePersonInfo> listAllConfirmByVisaId(Long visaId);
|
||||
List<VisaChangeApproveCreateReq.ApprovePersonInfo> listAllConfirmByVisaId(Long visaId, List<VisaConfirmBizTypeEnum> bizTypes);
|
||||
|
||||
/**
|
||||
* 构建公司的Map,orgIdAndNameMap,key:ouId,value:ouName
|
||||
|
||||
@ -418,6 +418,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
.in(CollectionUtils.isNotEmpty(dto.getProjectIds()), ChangeRecordConfirm::getProjectId, dto.getProjectIds())
|
||||
.eq(Objects.nonNull(dto.getType()), ChangeRecordConfirm::getType, dto.getType())
|
||||
.eq(Objects.nonNull(dto.getBizType()), ChangeRecordConfirm::getBizType, dto.getBizType())
|
||||
.in(CollectionUtils.isNotEmpty(dto.getBizTypes()), ChangeRecordConfirm::getBizType, dto.getBizTypes())
|
||||
.in(CollectionUtils.isNotEmpty(dto.getVisaTypes()), ChangeRecordConfirm::getVisaType, dto.getVisaTypes())
|
||||
.eq(ChangeRecordConfirm::getIsDelete, 0);
|
||||
}
|
||||
@ -450,10 +451,10 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VisaChangeApproveCreateReq.ApprovePersonInfo> listAllConfirmByVisaId(Long visaId) {
|
||||
public List<VisaChangeApproveCreateReq.ApprovePersonInfo> listAllConfirmByVisaId(Long visaId, List<VisaConfirmBizTypeEnum> bizTypes) {
|
||||
VisaConfirmDto dto = VisaConfirmDto.builder()
|
||||
.visaId(visaId)
|
||||
.bizType(VisaConfirmBizTypeEnum.CONFIRM).build();
|
||||
.bizTypes(bizTypes).build();
|
||||
List<ChangeRecordConfirm> list = this.findByCondition(dto);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return Lists.newArrayList();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user