Merge remote-tracking branch 'origin/feature/REQ-3982' into feature/REQ-3982
This commit is contained in:
commit
64976f8505
@ -3,6 +3,7 @@ package cn.axzo.nanopart.visa.api.request;
|
||||
import cn.axzo.framework.domain.ServiceException;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@ -86,7 +87,7 @@ public class ChangeStatusRequest {
|
||||
*/
|
||||
private boolean editFormFlag = true;
|
||||
|
||||
|
||||
private VisaTypeEnum visaType;
|
||||
public void check() {
|
||||
if (Objects.nonNull(logType) && !VisaLogTypeEnum.isApproveNotAgree(logType)) {
|
||||
throw new ServiceException("不是审核不通过日志");
|
||||
|
||||
@ -79,7 +79,6 @@ public class VisaPayApproveCreateReq {
|
||||
/**
|
||||
* 操作人 OUID
|
||||
*/
|
||||
@NotNull
|
||||
private Long operatorOuId;
|
||||
|
||||
/**
|
||||
|
||||
@ -7,6 +7,18 @@
|
||||
<version>${revision}</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>8</source>
|
||||
<target>8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>visa-server</artifactId>
|
||||
|
||||
@ -150,7 +150,7 @@ public class ChangeRecord extends BaseEntity<ChangeRecord> {
|
||||
/**
|
||||
* 最终审批时间
|
||||
*/
|
||||
@TableField(value = "approval_complete_time", updateStrategy = FieldStrategy.IGNORED)
|
||||
@TableField(value = "approval_complete_time", updateStrategy = FieldStrategy.NOT_EMPTY)
|
||||
private Date approvalCompleteTime;
|
||||
|
||||
/**
|
||||
@ -222,7 +222,7 @@ public class ChangeRecord extends BaseEntity<ChangeRecord> {
|
||||
/**
|
||||
* 最终审批时间
|
||||
*/
|
||||
@TableField(value = "approval_complete_time_pay", updateStrategy = FieldStrategy.IGNORED)
|
||||
@TableField(value = "approval_complete_time_pay", updateStrategy = FieldStrategy.NOT_EMPTY)
|
||||
private Date approvalCompleteTimePay;
|
||||
|
||||
private static final Table<VisaStampStatusEnum, UpdateVisaChangeReq.VisaStampAction, VisaStampStatusEnum> VISA_STAMP_STATUS_ACTION = HashBasedTable.create();
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.nanopart.visa.server.dto;
|
||||
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@ -86,6 +87,10 @@ public class VisaLogParam {
|
||||
*/
|
||||
private VisaStatusEnum oldStatus;
|
||||
|
||||
/**
|
||||
* 用于区别原始三个单据类型和价款审批
|
||||
*/
|
||||
private VisaTypeEnum visaType;
|
||||
|
||||
/**
|
||||
* 获取删除附件信息
|
||||
|
||||
@ -140,8 +140,9 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
|
||||
.organizationUnitId(approveDetail.getOuId())
|
||||
.type(1)
|
||||
.build());
|
||||
if (CollectionUtils.isEmpty(workspaces) || workspaces.size() != 1) {
|
||||
if (CollectionUtils.isEmpty(workspaces)) {
|
||||
log.error("未获取到指定单位的企业工作台信息, ouId:{}", approveDetail.getOuId());
|
||||
return;
|
||||
}
|
||||
GetWorkspaceDetailRes entWorkspace = workspaces.get(0);
|
||||
|
||||
|
||||
@ -1,34 +1,5 @@
|
||||
package cn.axzo.nanopart.visa.server.mq.listener.workflow.process;
|
||||
|
||||
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;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_OU_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVE_ABORT;
|
||||
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_PAY;
|
||||
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.PAY_CONFIRM;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.PROJECT_VISA;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.TECHNOLOGY_APPROVED;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.groovy.util.Maps;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import cn.axzo.framework.jackson.utility.JSON;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
@ -60,7 +31,35 @@ import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinition
|
||||
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;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
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;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_OU_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVE_ABORT;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVE_COMPLETED;
|
||||
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_PAY;
|
||||
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.PAY_CONFIRM;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.PROJECT_VISA;
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaTypeEnum.TECHNOLOGY_APPROVED;
|
||||
|
||||
/**
|
||||
* 工作流广播的实例维度的所有事件类型
|
||||
@ -129,8 +128,8 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
log.info("send complete notice, onCompleted, processInstanceDTO: {}", JSON.toJSONString(dto));
|
||||
sendCompleteNotice(dto);
|
||||
log.info("send complete notice success");
|
||||
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.APPROVED);
|
||||
BpmnProcessDefinitionVO processDefinition = workflowGateway.getActiveProcessDefinitionByKey(dto.getProcessDefinitionKey());
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.APPROVED, processDefinition);
|
||||
|
||||
if (isPayConfirm(dto)) {
|
||||
changeRecordService.lambdaUpdate()
|
||||
@ -209,7 +208,7 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
.build();
|
||||
eventProducer.send(VisaChangeLogPayload.form(log));
|
||||
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.CANCELLED);
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.CANCELLED, processDefinition);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -234,7 +233,7 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
.build();
|
||||
eventProducer.send(VisaChangeLogPayload.form(log));
|
||||
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.REJECTED);
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.REJECTED, processDefinition);
|
||||
|
||||
}
|
||||
|
||||
@ -284,10 +283,10 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
.build();
|
||||
eventProducer.send(VisaChangeLogPayload.form(log));
|
||||
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.ABORTED);
|
||||
updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.ABORTED, processDefinition);
|
||||
}
|
||||
|
||||
private void updateChangeRecordApprovalStatus(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum) {
|
||||
private void updateChangeRecordApprovalStatus(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum, BpmnProcessDefinitionVO processDefinition) {
|
||||
boolean isPayConfirm = isPayConfirm(dto);
|
||||
// 更新主表审批状态信息
|
||||
Long visaId = Long.valueOf(dto.getBusinessKey());
|
||||
@ -333,24 +332,37 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem
|
||||
|
||||
ChangeRecord visa = changeRecordService.getById(visaId);
|
||||
BpmnTaskDelegateAssigner lastOperationAssigner = dto.getLastOperationAssigner();
|
||||
if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED) && isPayConfirm) {
|
||||
changeRecordService.changeStatus(ChangeStatusRequest.builder()
|
||||
.visaId(visaId)
|
||||
.personId(Long.valueOf(lastOperationAssigner.getPersonId()))
|
||||
.ouId(Long.valueOf(lastOperationAssigner.getOuId()))
|
||||
.workspaceId(Long.valueOf(lastOperationAssigner.getTenantId()))
|
||||
.updateStatus(VisaStatusEnum.COMPLETED)
|
||||
.editFormFlag(false)
|
||||
.build());
|
||||
if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED)) {
|
||||
if (isPayConfirm) {
|
||||
// 修改状态,并记录日志
|
||||
changeRecordService.changeStatus(ChangeStatusRequest.builder()
|
||||
.visaId(visaId)
|
||||
.personId(Long.valueOf(lastOperationAssigner.getPersonId()))
|
||||
.ouId(Long.valueOf(lastOperationAssigner.getOuId()))
|
||||
.workspaceId(Long.valueOf(lastOperationAssigner.getTenantId()))
|
||||
.updateStatus(VisaStatusEnum.COMPLETED)
|
||||
.visaType(PAY_CONFIRM)
|
||||
.editFormFlag(false)
|
||||
.build());
|
||||
|
||||
} else {
|
||||
ChangeRecordLog log = ChangeRecordLog.builder()
|
||||
.visaId(Long.valueOf(dto.getBusinessKey()))
|
||||
.action(dto.getType().getTag())
|
||||
.title(String.format(APPROVE_COMPLETED.getTitle(), processDefinition.getName()))
|
||||
.content(String.format(APPROVE_COMPLETED.getContent(), processDefinition.getName()))
|
||||
.build();
|
||||
eventProducer.send(VisaChangeLogPayload.form(log));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!isPayConfirm) {
|
||||
// 回退到待提报或决策中
|
||||
changeRecordService.changeStatus(ChangeStatusRequest.builder()
|
||||
.visaId(visaId)
|
||||
.personId(Long.valueOf(lastOperationAssigner.getPersonId()))
|
||||
.ouId(Long.valueOf(lastOperationAssigner.getOuId()))
|
||||
.workspaceId(Long.valueOf(lastOperationAssigner.getTenantId()))
|
||||
.personId(Long.valueOf(StringUtils.hasText(lastOperationAssigner.getPersonId()) ? lastOperationAssigner.getPersonId() : "0"))
|
||||
.ouId(Long.valueOf(StringUtils.hasText(lastOperationAssigner.getOuId()) ? lastOperationAssigner.getOuId() : "0"))
|
||||
.workspaceId(Long.valueOf(StringUtils.hasText(lastOperationAssigner.getTenantId()) ? lastOperationAssigner.getTenantId() : "0"))
|
||||
.updateStatus(Objects.isNull(visa.getImGroupId()) ? VisaStatusEnum.REPORT_FROM_APPROVE : VisaStatusEnum.DECIDING_FROM_APPROVE)
|
||||
.editFormFlag(false)
|
||||
.build());
|
||||
|
||||
@ -686,7 +686,9 @@ public class VisaHelper {
|
||||
variables.put(FORM_PAY_ACTUAL_CONSTRUCTION_COMPLETE_DATE, req.getActualConstructionCompleteDate());
|
||||
variables.put(FORM_PAY_DECLARED_AMOUNT, req.getDeclaredAmount());
|
||||
variables.put(FORM_PAY_APPROVAL_AMOUNT, null);
|
||||
variables.put(FORM_PAY_COMPLETE_CONFIRM_ATTACH, req.getAttachments());
|
||||
if (CollectionUtils.isEmpty(req.getAttachments())) {
|
||||
variables.put(FORM_PAY_COMPLETE_CONFIRM_ATTACH, req.getAttachments());
|
||||
}
|
||||
|
||||
VisaChangeApproveCreateReq createReq = buildVisaChangeApproveCreateReqByVisaId(visaId);
|
||||
Map<String, Object> visaFormVariables = buildStartFormVariables(createReq);
|
||||
|
||||
@ -162,9 +162,12 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
// .orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
|
||||
// break;
|
||||
case TO_APPRROVE:
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
|
||||
BpmnProcessDefinitionVO processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
BpmnProcessDefinitionVO processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
// 动作:发起审批
|
||||
// 状态流转:[待提报|审批不通过的待提报|决策中|审批不通过的决策中|执行中]-->[审批中]
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
@ -174,11 +177,14 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
.orderBy(CHANGE_STATUS_FILE_ORDER_BY).build());
|
||||
break;
|
||||
case APPROVED_AGRESS:
|
||||
changeRecord = this.changeRecordService.getById(visaId);
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
// 动作:审批流:某审批人审批通过
|
||||
// 状态流转:仍然是审批中 [审批中] -> [审批中]
|
||||
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
.action(VisaLogTypeEnum.APPROVED_AGRESS.name())
|
||||
.title(String.format(VisaLogTypeEnum.APPROVED_AGRESS.getTitle(), userName))
|
||||
@ -186,11 +192,14 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
.orderBy(Constants.ONE_APPROVED_ORDER_BY).build());
|
||||
break;
|
||||
case REVERT_APPROVE:
|
||||
changeRecord = this.changeRecordService.getById(visaId);
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
// 动作:审批流:撤回审批
|
||||
// 状态流转:[审批中] -> [审批到待提报|审批到决策中] 仅限第一个立项审批
|
||||
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
.action(VisaLogTypeEnum.REVERT_APPROVE.name())
|
||||
.title(String.format(VisaLogTypeEnum.REVERT_APPROVE.getTitle(), processDefinition.getName()))
|
||||
@ -198,11 +207,14 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
.orderBy(CHANGE_STATUS_FILE_ORDER_BY).build());
|
||||
break;
|
||||
case REJECT_APPROVE:
|
||||
changeRecord = this.changeRecordService.getById(visaId);
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
// 动作:审批流:撤回审批
|
||||
// 状态流转:[审批中] -> [审批到待提报|审批到决策中] 仅限第一个立项审批
|
||||
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
.action(VisaLogTypeEnum.REJECT_APPROVE.name())
|
||||
.title(String.format(VisaLogTypeEnum.REJECT_APPROVE.getTitle(), userName, processDefinition.getName()))
|
||||
@ -210,11 +222,14 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
.orderBy(CHANGE_STATUS_FILE_ORDER_BY).build());
|
||||
break;
|
||||
case TRANSMIT_APPROVE:
|
||||
changeRecord = this.changeRecordService.getById(visaId);
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
// 动作:审批流操作:转交
|
||||
// 状态流转:[审批中] -> [审批到待提报|审批到决策中] 仅限第一个立项审批
|
||||
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
.action(VisaLogTypeEnum.TRANSMIT_APPROVE.name())
|
||||
.title(VisaLogTypeEnum.TRANSMIT_APPROVE.getTitle())
|
||||
@ -232,8 +247,11 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
.orderBy(CHANGE_STATUS_FILE_ORDER_BY).build());
|
||||
break;
|
||||
case APPROVE_COMPLETED:
|
||||
changeRecord = this.changeRecordService.getById(visaId);
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
// 动作:整个审批通过
|
||||
// 状态流转:[审批中]-->[已完成]
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
@ -243,10 +261,13 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
|
||||
.orderBy(Constants.APPROVE_COMPLETED_ORDER_BY).build());
|
||||
break;
|
||||
case APPROVE_ABORT:
|
||||
changeRecord = this.changeRecordService.getById(visaId);
|
||||
if (Objects.isNull(param.getVisaType())) {
|
||||
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
|
||||
param.setVisaType(changeRecord.getType());
|
||||
}
|
||||
// 动作:审批过程异常,被流程引擎中止
|
||||
// 状态流转:[审批中]->[审批到待提报|审批到决策中] 仅限第一个立项审批
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(changeRecord.getType().getProcessDefinitionKey());
|
||||
processDefinition = workflowGateway.getActiveProcessDefinitionByKey(param.getVisaType().getProcessDefinitionKey());
|
||||
logList.add(ChangeRecordLog.builder().visaId(visaId)
|
||||
.action(VisaLogTypeEnum.APPROVE_ABORT.name())
|
||||
.title(String.format(VisaLogTypeEnum.APPROVE_ABORT.getTitle(), processDefinition.getName()))
|
||||
|
||||
@ -1,63 +1,5 @@
|
||||
package cn.axzo.nanopart.visa.server.service.impl;
|
||||
|
||||
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;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_OU_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_VISA_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_VISA_TYPE;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_VISA_TYPE_DESC;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.MSG_CENTER_APP_CODE;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_PENDING_INITIATOR_NAME;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_PENDING_TOPIC;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.AUTO_COMPLETE;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.CANCEL;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.COMPLETE;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.TX_CANCEL;
|
||||
import static cn.axzo.nanopart.visa.server.config.BizResultCode.CHANGE_RECORD_NOT_FOUND;
|
||||
import static cn.axzo.nanopart.visa.server.utils.Constants.DATE_FORMAT;
|
||||
import static cn.axzo.nanopart.visa.server.utils.Constants.FORM_FIELD_BILL_NAME;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.ABORTED;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.REJECTED;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.groovy.util.Maps;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
import cn.axzo.apollo.api.req.QueryOrderToBasicReq;
|
||||
import cn.axzo.apollo.api.res.ConstructionAreaDTO;
|
||||
import cn.axzo.apollo.api.res.ConstructionAreaInfo;
|
||||
@ -175,7 +117,62 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.groovy.util.Maps;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
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;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_OU_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_VISA_ID;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_VISA_TYPE;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_VISA_TYPE_DESC;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.MSG_CENTER_APP_CODE;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_PENDING_INITIATOR_NAME;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_PENDING_TOPIC;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.AUTO_COMPLETE;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.CANCEL;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.COMPLETE;
|
||||
import static cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq.VisaStampAction.TX_CANCEL;
|
||||
import static cn.axzo.nanopart.visa.server.config.BizResultCode.CHANGE_RECORD_NOT_FOUND;
|
||||
import static cn.axzo.nanopart.visa.server.utils.Constants.DATE_FORMAT;
|
||||
import static cn.axzo.nanopart.visa.server.utils.Constants.FORM_FIELD_BILL_NAME;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.ABORTED;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.REJECTED;
|
||||
|
||||
/**
|
||||
* @author xudawei
|
||||
@ -285,7 +282,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.newAmountChange(request.getNewAmountChange())
|
||||
.oldAmountChange(request.getOldAmountChange())
|
||||
.uploadAttach(VisaLogParam.uploadAttachWithObject(request.getNewAttach(), request.getOldAttach()))
|
||||
.deleteAttach(VisaLogParam.deleteAttachWithObject(request.getOldAttach(), request.getNewAttach())).build());
|
||||
.deleteAttach(VisaLogParam.deleteAttachWithObject(request.getOldAttach(), request.getNewAttach()))
|
||||
.visaType(request.getVisaType())
|
||||
.build());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -897,7 +896,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
changeRecord.setId(visaId);
|
||||
if (Objects.equals(VisaTypeEnum.PAY_CONFIRM, visaType)) {
|
||||
changeRecord.setApprovalIdPay(processInstanceId);
|
||||
changeRecord.setApprovalStatus(PROCESSING.getStatus());
|
||||
changeRecord.setApprovalStatusPay(PROCESSING.getStatus());
|
||||
} else {
|
||||
// 原三种单据类型主表更新审批信息
|
||||
changeRecord.setApprovalId(processInstanceId);
|
||||
@ -1986,10 +1985,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
// 在某些用印操作时,需要记录recordLog,用于详情展示,因为以前详情展示的操作日志是使用的recordLog
|
||||
insertRecordLog(req);
|
||||
|
||||
operateLogService.save(req.getContext(), req.getVisaId(), //
|
||||
"request", req, //
|
||||
"oldValue", oldValue, //
|
||||
"newValue", this.getById(req.getVisaId()));
|
||||
operateLogService.save(req.getContext(), req.getVisaId(), //
|
||||
"request", req, //
|
||||
"oldValue", oldValue, //
|
||||
"newValue", this.getById(req.getVisaId()));
|
||||
}
|
||||
|
||||
public ChangeRecord toUpdate(UpdateVisaChangeReq req, ChangeRecord oldValue) {
|
||||
@ -2170,13 +2169,14 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
AssertUtil.isTrue(StringUtils.hasText(processInstanceId), "创建审批异常");
|
||||
|
||||
// 更新主表中的审批字段,记录变量表的审批的信息
|
||||
updateApprovalInfo(visa.getId(), processInstanceId, req.getOperatorPersonId(), visa.getType());
|
||||
updateApprovalInfo(visa.getId(), processInstanceId, req.getOperatorPersonId(), VisaTypeEnum.PAY_CONFIRM);
|
||||
|
||||
// 写入发起审批的日志
|
||||
changeRecordLogService.batchAddLog(changeRecordLogService.buildLogList(visa.getId(), VisaLogTypeEnum.TO_APPRROVE, VisaLogParam.builder()
|
||||
.ouId(req.getOperatorOuId())
|
||||
.personId(req.getOperatorPersonId())
|
||||
.workspaceId(visa.getRelationWorkspaceId())
|
||||
.visaType(VisaTypeEnum.PAY_CONFIRM)
|
||||
.build()));
|
||||
}
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
package cn.axzo.nanopart.visa.server.service.impl;
|
||||
|
||||
import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PROCESS_INSTANCE_OF_PAY;
|
||||
@ -12,7 +13,6 @@ import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import cn.axzo.msg.center.service.pending.client.PendingMessageClient;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest;
|
||||
@ -37,79 +37,77 @@ import lombok.RequiredArgsConstructor;
|
||||
@RequiredArgsConstructor
|
||||
public class DetailCardBuilder {
|
||||
|
||||
private final PrintModelService printModelService;
|
||||
private final ChangeRecordRelationService changeRecordRelationService;
|
||||
private final PendingMessageClient pendingMessageClient;
|
||||
private final PrintModelService printModelService;
|
||||
private final ChangeRecordRelationService changeRecordRelationService;
|
||||
private final PendingMessageClient pendingMessageClient;
|
||||
|
||||
List<DetailCard> build(ChangeRecord visa) {
|
||||
ArrayList<DetailCard> details = new ArrayList<>();
|
||||
Consumer<VisaProcessPhase> builder = (phase) -> {
|
||||
DetailCard detail = new DetailCard();
|
||||
PrintModelDTO printModel = printModelService.getPrintTemplateConfig(visa, phase);
|
||||
List<DetailCard> build(ChangeRecord visa) {
|
||||
ArrayList<DetailCard> details = new ArrayList<>();
|
||||
Consumer<VisaProcessPhase> builder = (phase) -> {
|
||||
VisaRelationFieldEnum workflowField = phase == VisaProcessPhase.PROJECT ? PROCESS_INSTANCE_OF_VISA
|
||||
: PROCESS_INSTANCE_OF_PAY;
|
||||
ChangeRecordRelation workflowRelation = changeRecordRelationService.lambdaQuery() //
|
||||
.eq(ChangeRecordRelation::getVisaId, visa.getId()) //
|
||||
.eq(ChangeRecordRelation::getVarName, workflowField.name()) //
|
||||
.orderByDesc(ChangeRecordRelation::getId) //
|
||||
.last("LIMIT 1") //
|
||||
.one();
|
||||
if (workflowRelation == null)
|
||||
return;
|
||||
DetailCard detail = new DetailCard();
|
||||
detail.setWorkflowInstanceId(workflowRelation.getContent());
|
||||
FormInstanceVO formInstance = printModelService.getFormInstance(workflowRelation.getContent());
|
||||
if (formInstance != null)
|
||||
detail.setFormModel(formInstance.getFormModel());
|
||||
BpmnProcessInstanceResultEnum workflowStatus = BpmnProcessInstanceResultEnum.valueOfStatus(
|
||||
workflowRelation.getContentExt());
|
||||
|
||||
VisaRelationFieldEnum workflowField = phase == VisaProcessPhase.PROJECT ? PROCESS_INSTANCE_OF_VISA
|
||||
: PROCESS_INSTANCE_OF_PAY;
|
||||
ChangeRecordRelation workflowRelation = changeRecordRelationService.lambdaQuery()
|
||||
.eq(ChangeRecordRelation::getVisaId, visa.getId())
|
||||
.eq(ChangeRecordRelation::getVarName, workflowField.name())
|
||||
.orderByDesc(ChangeRecordRelation::getId)
|
||||
.last("LIMIT 1")
|
||||
.one();
|
||||
BpmnProcessInstanceResultEnum workflowStatus = null;
|
||||
if (workflowRelation != null) {
|
||||
detail.setWorkflowInstanceId(workflowRelation.getContent());
|
||||
FormInstanceVO formInstance = printModelService.getFormInstance(workflowRelation.getContent());
|
||||
if (formInstance != null)
|
||||
detail.setFormModel(formInstance.getFormModel());
|
||||
workflowStatus = BpmnProcessInstanceResultEnum.valueOfStatus(workflowRelation.getContentExt());
|
||||
}
|
||||
|
||||
detail.setTitle(printModel.getPrintFileName());
|
||||
if (workflowStatus != null) {
|
||||
detail.setWorkflowStatus(workflowStatus.getStatus());
|
||||
String prefix = phase == VisaProcessPhase.PROJECT ? "立项" : "价款";
|
||||
detail.setWorkflowStatusDesc(prefix + workflowStatus.getDesc());
|
||||
}
|
||||
VisaStampStatusEnum stampStatus = phase == VisaProcessPhase.PROJECT ? visa.getStampStatus() : visa.getStampStatusPay();
|
||||
if(stampStatus != null && stampStatus != VisaStampStatusEnum.UNKNOWN) {
|
||||
detail.setStampStatus(stampStatus.name());
|
||||
detail.setStampStatusDesc(stampStatus.getDesc());
|
||||
}
|
||||
detail.addButton("查看详情", WorkflowButtonType.DETAIL);
|
||||
PrintModelDTO printModel = printModelService.getPrintTemplateConfig(visa.getRelationWorkspaceId() + "");
|
||||
detail.setTitle(printModel.getPrintFileName());
|
||||
if (workflowStatus != null) {
|
||||
detail.setWorkflowStatus(workflowStatus.getStatus());
|
||||
String prefix = phase == VisaProcessPhase.PROJECT ? "立项" : "价款";
|
||||
detail.setWorkflowStatusDesc(prefix + workflowStatus.getDesc());
|
||||
}
|
||||
VisaStampStatusEnum stampStatus = phase == VisaProcessPhase.PROJECT ? visa.getStampStatus()
|
||||
: visa.getStampStatusPay();
|
||||
if (stampStatus != null && stampStatus != VisaStampStatusEnum.UNKNOWN) {
|
||||
detail.setStampStatus(stampStatus.name());
|
||||
detail.setStampStatusDesc(stampStatus.getDesc());
|
||||
}
|
||||
detail.addButton("查看详情", WorkflowButtonType.DETAIL);
|
||||
if (workflowStatus == BpmnProcessInstanceResultEnum.APPROVED) {
|
||||
if (stampStatus == VisaStampStatusEnum.USED_PRINTS)
|
||||
detail.addButton("打印", WorkflowButtonType.PRINT);
|
||||
else if (stampStatus == VisaStampStatusEnum.UNPRINTED || stampStatus == VisaStampStatusEnum.WITH_PRINT)
|
||||
detail.addButton("用印预览", WorkflowButtonType.PRINT_PREVIEW);
|
||||
if (stampStatus == VisaStampStatusEnum.UNPRINTED)
|
||||
detail.addButton("申请用印", WorkflowButtonType.REQUEST_STAMP);
|
||||
else if (stampStatus == VisaStampStatusEnum.WITH_PRINT)
|
||||
detail.addButton("用印进展", WorkflowButtonType.STAMP_PROGRESS);
|
||||
else if (stampStatus == VisaStampStatusEnum.UNPRINTED || stampStatus == VisaStampStatusEnum.WITH_PRINT)
|
||||
detail.addButton("用印预览", WorkflowButtonType.PRINT_PREVIEW);
|
||||
if (stampStatus == VisaStampStatusEnum.UNPRINTED)
|
||||
detail.addButton("申请用印", WorkflowButtonType.REQUEST_STAMP);
|
||||
else if (stampStatus == VisaStampStatusEnum.WITH_PRINT)
|
||||
detail.addButton("用印进展", WorkflowButtonType.STAMP_PROGRESS);
|
||||
}
|
||||
details.add(detail);
|
||||
};
|
||||
if (StringUtils.hasText(visa.getApprovalId()))
|
||||
builder.accept(VisaProcessPhase.PROJECT);
|
||||
if (StringUtils.hasText(visa.getApprovalIdPay()))
|
||||
builder.accept(VisaProcessPhase.PAYMENT);
|
||||
return details;
|
||||
}
|
||||
details.add(detail);
|
||||
};
|
||||
builder.accept(VisaProcessPhase.PROJECT);
|
||||
builder.accept(VisaProcessPhase.PAYMENT);
|
||||
return details;
|
||||
}
|
||||
|
||||
public void populateCardTodoIdentityCode(List<DetailCard> cards, Long personId) {
|
||||
if (cards == null) return;
|
||||
List<String> bizCodes = cards.stream()
|
||||
.map(DetailCard::getWorkflowInstanceId)
|
||||
.collect(toList());
|
||||
public void populateCardTodoIdentityCode(List<DetailCard> cards, Long personId) {
|
||||
if (cards == null)
|
||||
return;
|
||||
List<String> bizCodes = cards.stream().map(DetailCard::getWorkflowInstanceId).collect(toList());
|
||||
PendingMessageByBizCodeRequest request = new PendingMessageByBizCodeRequest();
|
||||
request.setBizCodes(bizCodes);
|
||||
request.setOperatorPersonId(personId);
|
||||
Map<String, List<PendingMessageSimpleDTO>> biz2Todos = pendingMessageClient.getLatestByBizCode(request)
|
||||
.getData().stream().collect(groupingBy(PendingMessageSimpleDTO::getBizCode));
|
||||
for (DetailCard card : cards) {
|
||||
List<PendingMessageSimpleDTO> todos = biz2Todos.getOrDefault(card.getWorkflowInstanceId(), Collections.emptyList());
|
||||
if (!todos.isEmpty())
|
||||
card.setTodoIdentityCode(todos.get(0).getIdentityCode());
|
||||
}
|
||||
}
|
||||
request.setOperatorPersonId(personId);
|
||||
Map<String, List<PendingMessageSimpleDTO>> biz2Todos = pendingMessageClient.getLatestByBizCode(
|
||||
request).getData().stream().collect(groupingBy(PendingMessageSimpleDTO::getBizCode));
|
||||
for (DetailCard card : cards) {
|
||||
List<PendingMessageSimpleDTO> todos = biz2Todos.getOrDefault(card.getWorkflowInstanceId(),
|
||||
Collections.emptyList());
|
||||
if (!todos.isEmpty())
|
||||
card.setTodoIdentityCode(todos.get(0).getIdentityCode());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
package cn.axzo.nanopart.visa.server.service.impl;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -19,20 +20,25 @@ import lombok.RequiredArgsConstructor;
|
||||
@RequiredArgsConstructor
|
||||
public class PrintModelService {
|
||||
|
||||
private final WorkflowGateway workflowGateway;
|
||||
private final RefreshableConfiguration refreshableConfiguration;
|
||||
private final WorkflowGateway workflowGateway;
|
||||
private final RefreshableConfiguration refreshableConfiguration;
|
||||
|
||||
public PrintModelDTO getPrintTemplateConfig(ChangeRecord visa, VisaProcessPhase phase) {
|
||||
PrintTemplateConfigQueryDTO request = new PrintTemplateConfigQueryDTO();
|
||||
request.setProcessDefinitionKey(refreshableConfiguration.getStampProcessDefinitionKey());
|
||||
request.setTenantId(phase == VisaProcessPhase.PROJECT ? visa.getApprovalId() : visa.getApprovalIdPay());
|
||||
return workflowGateway.getPrintTemplateConfig(request);
|
||||
}
|
||||
public PrintModelDTO getPrintTemplateConfig(ChangeRecord visa, VisaProcessPhase phase) {
|
||||
return getPrintTemplateConfig(
|
||||
phase == VisaProcessPhase.PROJECT ? visa.getApprovalId() : visa.getApprovalIdPay());
|
||||
}
|
||||
|
||||
public FormInstanceVO getFormInstance(String approvalId) {
|
||||
FormDetailDTO request = new FormDetailDTO();
|
||||
request.setProcessInstanceId(approvalId);
|
||||
return workflowGateway.getFormInstance(request);
|
||||
}
|
||||
public PrintModelDTO getPrintTemplateConfig(String tenantId) {
|
||||
PrintTemplateConfigQueryDTO request = new PrintTemplateConfigQueryDTO();
|
||||
request.setProcessDefinitionKey(refreshableConfiguration.getStampProcessDefinitionKey());
|
||||
request.setTenantId(tenantId);
|
||||
return workflowGateway.getPrintTemplateConfig(request);
|
||||
}
|
||||
|
||||
public FormInstanceVO getFormInstance(String approvalId) {
|
||||
FormDetailDTO request = new FormDetailDTO();
|
||||
request.setProcessInstanceId(approvalId);
|
||||
return workflowGateway.getFormInstance(request);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user