feat(REQ-3581) - 增加单位用印申请的审批结果处理
This commit is contained in:
parent
4322137f97
commit
ff56ab10a8
@ -4,6 +4,7 @@ import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum;
|
||||
import cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq;
|
||||
import cn.axzo.nanopart.visa.server.config.RefreshableConfiguration;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordRelation;
|
||||
import cn.axzo.nanopart.visa.server.dto.VisaRelationDto;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordRelationService;
|
||||
@ -34,10 +35,12 @@ public class CompleteVisaChangeStampHandler implements ProcessInstanceEventHandl
|
||||
private ChangeRecordRelationService changeRecordRelationService;
|
||||
@Autowired
|
||||
private ChangeRecordService changeRecordService;
|
||||
@Autowired
|
||||
private RefreshableConfiguration refreshableConfiguration;
|
||||
|
||||
@Override
|
||||
public boolean accept(ProcessInstanceDTO dto, Event event, EventConsumer.Context context) {
|
||||
return Objects.equals(dto.getProcessDefinitionKey(), "bgqzyy");
|
||||
return Objects.equals(dto.getProcessDefinitionKey(), refreshableConfiguration.getStampProcessDefinitionKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -0,0 +1,149 @@
|
||||
package cn.axzo.nanopart.visa.server.mq.listener.workflow.process;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventProducer;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
|
||||
import cn.axzo.nanopart.visa.server.config.RefreshableConfiguration;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecord;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordLog;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordRelation;
|
||||
import cn.axzo.nanopart.visa.server.dto.RelationEssContextDto;
|
||||
import cn.axzo.nanopart.visa.server.dto.VisaRelationDto;
|
||||
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.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 com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.REJECT_APPROVE;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.REVERT_APPROVE;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PROCESS_INSTANCE_OF_VISA;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.DESIGN_CHANGE;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.PROJECT_VISA;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.TECHNOLOGY_APPROVED;
|
||||
|
||||
/**
|
||||
* 工作流广播的实例维度的所有事件类型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-17 11:35
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ProcessInstanceOfEssAllEventHandler extends BasicLogSupport implements ProcessInstanceEventHandler {
|
||||
private final RefreshableConfiguration refreshableConfiguration;
|
||||
private final ChangeRecordRelationService changeRecordRelationService;
|
||||
|
||||
public ProcessInstanceOfEssAllEventHandler(EventProducer eventProducer,
|
||||
VisaOrganizationalNodeUserGateway visaOrganizationalNodeUserGateway,
|
||||
RefreshableConfiguration refreshableConfiguration,
|
||||
ChangeRecordRelationService changeRecordRelationService) {
|
||||
super(eventProducer, visaOrganizationalNodeUserGateway);
|
||||
this.refreshableConfiguration = refreshableConfiguration;
|
||||
this.changeRecordRelationService = changeRecordRelationService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return Integer.MIN_VALUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean accept(ProcessInstanceDTO dto, Event event, EventConsumer.Context context) {
|
||||
return Objects.equals(dto.getProcessDefinitionKey(), refreshableConfiguration.getStampProcessDefinitionKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreated(ProcessInstanceDTO dto) {
|
||||
ProcessInstanceEventHandler.super.onCreated(dto);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCompleted(ProcessInstanceDTO dto) {
|
||||
changeProcessInstanceOfEss(dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 流程撤回
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@Override
|
||||
public void onCancelled(ProcessInstanceDTO dto) {
|
||||
changeProcessInstanceOfEss(dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 流程驳回
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@Override
|
||||
public void onRejected(ProcessInstanceDTO dto) {
|
||||
changeProcessInstanceOfEss(dto);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAborted(ProcessInstanceDTO dto) {
|
||||
changeProcessInstanceOfEss(dto);
|
||||
}
|
||||
|
||||
private void changeProcessInstanceOfEss(ProcessInstanceDTO dto) {
|
||||
log.info("change process instance of ess: {}, instance result: {}", dto.getProcessInstanceId(), dto.getType().getTag());
|
||||
Long visaId = Long.valueOf(dto.getBusinessKey());
|
||||
Long operatorId = Optional.ofNullable(dto.getLastOperationAssigner())
|
||||
.map(e -> Long.valueOf(e.getPersonId()))
|
||||
.orElse(null);
|
||||
List<ChangeRecordRelation> essInstances = changeRecordRelationService.findByCondition(VisaRelationDto.builder()
|
||||
.visaId(visaId)
|
||||
.varName(VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS.name())
|
||||
.build());
|
||||
essInstances.forEach(e -> {
|
||||
String approvalId = JSON.parseObject(e.getContent(), RelationEssContextDto.class).getApprovalId();
|
||||
if (Objects.equals(approvalId, dto.getProcessInstanceId())) {
|
||||
switch (dto.getType()) {
|
||||
case PROCESS_INSTANCE_COMPLETED:
|
||||
e.setContentExt(BpmnProcessInstanceResultEnum.APPROVED.getStatus());
|
||||
break;
|
||||
case PROCESS_INSTANCE_REJECTED:
|
||||
e.setContentExt(BpmnProcessInstanceResultEnum.REJECTED.getStatus());
|
||||
break;
|
||||
case PROCESS_INSTANCE_ABORTED:
|
||||
e.setContentExt(BpmnProcessInstanceResultEnum.ABORTED.getStatus());
|
||||
break;
|
||||
case PROCESS_INSTANCE_CANCELLED:
|
||||
e.setContentExt(BpmnProcessInstanceResultEnum.CANCELLED.getStatus());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
e.setUpdateBy(operatorId);
|
||||
changeRecordRelationService.save(e);
|
||||
log.info("change success process instance of ess : {}", dto.getProcessInstanceId());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@ -7,7 +7,6 @@ import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
|
||||
import cn.axzo.nanopart.visa.server.config.RefreshableConfiguration;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecord;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordLog;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordRelation;
|
||||
@ -44,29 +43,25 @@ import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.TECHNOLOGY_APPROVED;
|
||||
* @since 2025-01-17 11:35
|
||||
*/
|
||||
@Component
|
||||
public class ProcessInstanceAllEventHandler extends BasicLogSupport implements ProcessInstanceEventHandler {
|
||||
public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implements ProcessInstanceEventHandler {
|
||||
protected final ChangeRecordService changeRecordService;
|
||||
protected final ChangeRecordRelationService changeRecordRelationService;
|
||||
protected final ChangeRecordBillService changeRecordBillService;
|
||||
protected final RefreshableConfiguration refreshableConfiguration;
|
||||
public final static List<String> SUPPORTED_DEFINITION_KEYS = Lists.newArrayList(
|
||||
DESIGN_CHANGE.getProcessDefinitionKey(),
|
||||
TECHNOLOGY_APPROVED.getProcessDefinitionKey(),
|
||||
PROJECT_VISA.getProcessDefinitionKey()
|
||||
);
|
||||
|
||||
public ProcessInstanceAllEventHandler(EventProducer eventProducer,
|
||||
VisaOrganizationalNodeUserGateway visaOrganizationalNodeUserGateway,
|
||||
ChangeRecordService changeRecordService,
|
||||
ChangeRecordRelationService changeRecordRelationService,
|
||||
ChangeRecordBillService changeRecordBillService,
|
||||
RefreshableConfiguration refreshableConfiguration) {
|
||||
public ProcessInstanceOfVisaAllEventHandler(EventProducer eventProducer,
|
||||
VisaOrganizationalNodeUserGateway visaOrganizationalNodeUserGateway,
|
||||
ChangeRecordService changeRecordService,
|
||||
ChangeRecordRelationService changeRecordRelationService,
|
||||
ChangeRecordBillService changeRecordBillService) {
|
||||
super(eventProducer, visaOrganizationalNodeUserGateway);
|
||||
this.changeRecordService = changeRecordService;
|
||||
this.changeRecordRelationService = changeRecordRelationService;
|
||||
this.changeRecordBillService = changeRecordBillService;
|
||||
this.refreshableConfiguration = refreshableConfiguration;
|
||||
SUPPORTED_DEFINITION_KEYS.add(refreshableConfiguration.getStampProcessDefinitionKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -17,7 +17,7 @@ import java.util.Objects;
|
||||
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVED_AGRESS;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.TRANSMIT_APPROVE;
|
||||
import static cn.axzo.nanopart.visa.server.mq.listener.workflow.process.ProcessInstanceAllEventHandler.SUPPORTED_DEFINITION_KEYS;
|
||||
import static cn.axzo.nanopart.visa.server.mq.listener.workflow.process.ProcessInstanceOfVisaAllEventHandler.SUPPORTED_DEFINITION_KEYS;
|
||||
|
||||
/**
|
||||
* 工作流广播的任务维度的所有事件类型
|
||||
@ -26,10 +26,10 @@ import static cn.axzo.nanopart.visa.server.mq.listener.workflow.process.ProcessI
|
||||
* @since 2025-01-17 11:34
|
||||
*/
|
||||
@Component
|
||||
@DependsOn("processInstanceAllEventHandler")
|
||||
public class ProcessTaskAllEventHandler extends BasicLogSupport implements ProcessTaskEventHandler {
|
||||
@DependsOn("processInstanceOfVisaAllEventHandler")
|
||||
public class ProcessTaskOfVisaAllEventHandler extends BasicLogSupport implements ProcessTaskEventHandler {
|
||||
|
||||
public ProcessTaskAllEventHandler(EventProducer eventProducer, VisaOrganizationalNodeUserGateway visaOrganizationalNodeUserGateway) {
|
||||
public ProcessTaskOfVisaAllEventHandler(EventProducer eventProducer, VisaOrganizationalNodeUserGateway visaOrganizationalNodeUserGateway) {
|
||||
super(eventProducer, visaOrganizationalNodeUserGateway);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user