REQ-3982: fix bugs
This commit is contained in:
parent
0aeeff8da8
commit
7777809398
@ -239,7 +239,7 @@ public class IndexManager {
|
||||
// resolve the name issue
|
||||
if (!indexSupport.childrenNameDuplicatable(rootNode))
|
||||
indexSupport.incrNameIfDuplicate(rootNode);
|
||||
// get the coped root with full props
|
||||
// get the copied root with full props
|
||||
return indexNodeDao.findOrNull(rootNode.getCode());
|
||||
}
|
||||
|
||||
|
||||
@ -47,6 +47,8 @@ public class UpdateVisaChangeReq {
|
||||
@NotNull(message = "phase不能为空")
|
||||
private VisaProcessPhase phase = VisaProcessPhase.PROJECT;
|
||||
|
||||
private String context;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum VisaStampAction {
|
||||
|
||||
@ -218,6 +218,11 @@ public class VisaDetailByIdResponse {
|
||||
*/
|
||||
private String approvalId;
|
||||
|
||||
/**
|
||||
* 最终审批ID
|
||||
*/
|
||||
private String approvalIdPay;
|
||||
|
||||
/**
|
||||
* 立项审批状态
|
||||
*/
|
||||
@ -238,6 +243,11 @@ public class VisaDetailByIdResponse {
|
||||
*/
|
||||
private String contractId;
|
||||
|
||||
/**
|
||||
* 合同 ID
|
||||
*/
|
||||
private String contractIdPay;
|
||||
|
||||
/**
|
||||
* 用印状态
|
||||
*/
|
||||
|
||||
@ -43,6 +43,7 @@ import cn.axzo.nanopart.visa.server.rpc.WorkflowGateway;
|
||||
import cn.axzo.nanopart.visa.server.rpc.WorkspaceGateway;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordRelationService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordService;
|
||||
import cn.axzo.nanopart.visa.server.service.OperateLogService;
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
@ -72,6 +73,8 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
|
||||
private ChangeRecordService changeRecordService;
|
||||
@Resource
|
||||
private ChangeRecordRelationService changeRecordRelationService;
|
||||
@Resource
|
||||
private OperateLogService operateLogService;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
@ -83,6 +86,7 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
|
||||
EssContractStateChangeMessage essContractStateChangeMessage = event.normalizedData(EssContractStateChangeMessage.class);
|
||||
EssContractInfo contract = essContractStateChangeMessage.getContract();
|
||||
AssertUtil.isTrue(Objects.nonNull(contract), "腾讯电子签事件对象异常");
|
||||
operateLogService.save("essMQ", contract.getEssContractId(), "message", essContractStateChangeMessage);
|
||||
|
||||
// 取消用印会清空合同 id,这里兼容该情况
|
||||
Optional<ChangeRecord> optVisa = changeRecordService.lambdaQuery()
|
||||
@ -192,6 +196,7 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
|
||||
.operatorId(0L)
|
||||
.operatorName("腾讯撤销合同")
|
||||
.scene("取消用印")
|
||||
.context("stamp:cancelOfEssCancelContract")
|
||||
.build();
|
||||
changeRecordService.update(updateVisaChangeReq);
|
||||
}
|
||||
|
||||
@ -116,6 +116,7 @@ public class CompleteVisaChangeStampHandler implements ProcessInstanceEventHandl
|
||||
.operatorName(operatorName)
|
||||
.visaStampAction(UpdateVisaChangeReq.VisaStampAction.AUTO_COMPLETE)
|
||||
.scene("用印审批完成,自动完成用印申请")
|
||||
.context("stamp:autoComplete")
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,34 @@
|
||||
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;
|
||||
@ -31,34 +60,7 @@ 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.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;
|
||||
|
||||
/**
|
||||
* 工作流广播的实例维度的所有事件类型
|
||||
|
||||
@ -4,5 +4,11 @@ import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
|
||||
public interface OperateLogService {
|
||||
|
||||
void saveRequest(String scene, Long tag, Object request);
|
||||
|
||||
void save(String scene, Long tag, Object... messages);
|
||||
|
||||
void save(String scene, String tag, Object... messages);
|
||||
|
||||
void save(LogAddReq param);
|
||||
}
|
||||
|
||||
@ -118,6 +118,7 @@ import cn.axzo.nanopart.visa.server.rpc.WorkspaceGateway;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordLogService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordRelationService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordService;
|
||||
import cn.axzo.nanopart.visa.server.service.OperateLogService;
|
||||
import cn.axzo.nanopart.visa.server.service.VisaHelper;
|
||||
import cn.axzo.nanopart.visa.server.utils.Constants;
|
||||
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
|
||||
@ -152,6 +153,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
private final VisaCooperateShipGateway visaCooperateShipGateway;
|
||||
private final OrganizationalUnitGateway organizationalUnitGateway;
|
||||
private final PrintModelService printModelService;
|
||||
private final OperateLogService operateLogService;
|
||||
@Resource
|
||||
@Lazy
|
||||
private VisaHelper visaHelper;
|
||||
@ -499,6 +501,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
AssertUtil.isTrue(Objects.nonNull(req.getOperatorOuId()) && Objects.nonNull(req.getOperatorPersonId()), "操作人信息不能为空");
|
||||
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
|
||||
AssertUtil.notNull(visa, "变洽签单据不存在");
|
||||
operateLogService.saveRequest("requestStamp", visa.getId(), req);
|
||||
|
||||
final boolean addLog = !StringUtils.hasText(visa.getContractId()) || !StringUtils.hasText(visa.getContractIdPay());
|
||||
// 移除上一次申请
|
||||
@ -656,13 +659,12 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
}
|
||||
|
||||
private void removeLastRequest(ChangeRecord visa, VisaProcessPhase phase) {
|
||||
if (StringUtils.hasText(visa.getContractId())) {
|
||||
return;
|
||||
if (phase == VisaProcessPhase.PROJECT && !StringUtils.hasText(visa.getContractId())) {
|
||||
deleteByVisaId(visa.getId(), Lists.newArrayList(PRINT_PDF_FILE, PROCESS_INSTANCE_OF_ESS, ESS_RECIPIENT_ID_MAP));
|
||||
}
|
||||
if (phase == VisaProcessPhase.PAYMENT && !StringUtils.hasText(visa.getContractIdPay())) {
|
||||
deleteByVisaId(visa.getId(), Lists.newArrayList(PRINT_PDF_FILE_PAY, PROCESS_INSTANCE_OF_ESS_PAY, ESS_RECIPIENT_ID_MAP_PAY));
|
||||
}
|
||||
ArrayList<VisaRelationFieldEnum> types = phase == VisaProcessPhase.PROJECT
|
||||
? Lists.newArrayList(PRINT_PDF_FILE, PROCESS_INSTANCE_OF_ESS, ESS_RECIPIENT_ID_MAP)
|
||||
: Lists.newArrayList(PRINT_PDF_FILE_PAY, PROCESS_INSTANCE_OF_ESS_PAY, ESS_RECIPIENT_ID_MAP_PAY);
|
||||
deleteByVisaId(visa.getId(), types);
|
||||
}
|
||||
|
||||
private Map<Long, String> listCooperateShipTypes(VisaRequestStampReq req, ChangeRecord visa) {
|
||||
@ -677,11 +679,13 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
}
|
||||
|
||||
private Map<String, String> createContract(VisaRequestStampReq req, ChangeRecord visa, Map<Long, List<EssSealPersonInfo>> stampUserMap) {
|
||||
if (StringUtils.hasText(visa.getContractId())) {
|
||||
VisaRelationFieldEnum filedType = req.getPhase() == VisaProcessPhase.PROJECT //
|
||||
? ESS_RECIPIENT_ID_MAP //
|
||||
: ESS_RECIPIENT_ID_MAP_PAY;
|
||||
List<ChangeRecordRelation> recipientIds = findByVisaAndVarName(visa.getId(), filedType.name());
|
||||
if (req.getPhase() == VisaProcessPhase.PROJECT && StringUtils.hasText(visa.getContractId())) {
|
||||
List<ChangeRecordRelation> recipientIds = findByVisaAndVarName(visa.getId(), ESS_RECIPIENT_ID_MAP.name());
|
||||
AssertUtil.notEmpty(recipientIds, "未找到签章位置信息");
|
||||
return JSON.parseObject(recipientIds.get(0).getContent(), Map.class);
|
||||
}
|
||||
if (req.getPhase() == VisaProcessPhase.PAYMENT && StringUtils.hasText(visa.getContractIdPay())) {
|
||||
List<ChangeRecordRelation> recipientIds = findByVisaAndVarName(visa.getId(), ESS_RECIPIENT_ID_MAP_PAY.name());
|
||||
AssertUtil.notEmpty(recipientIds, "未找到签章位置信息");
|
||||
return JSON.parseObject(recipientIds.get(0).getContent(), Map.class);
|
||||
}
|
||||
@ -715,10 +719,11 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
|
||||
CreateContractByFileResponse contract = essGateway.createContract(createContractRequest);
|
||||
AssertUtil.notNull(contract, "腾讯电子签合同创建失败");
|
||||
visa.setContractId(contract.getEssContractId());
|
||||
if (req.getPhase() == VisaProcessPhase.PROJECT) {
|
||||
visa.setContractId(contract.getEssContractId());
|
||||
visa.setStampStatus(VisaStampStatusEnum.WITH_PRINT);
|
||||
} else {
|
||||
visa.setContractIdPay(contract.getEssContractId());
|
||||
visa.setStampStatusPay(VisaStampStatusEnum.WITH_PRINT);
|
||||
}
|
||||
changeRecordService.updateById(visa);
|
||||
@ -795,7 +800,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
WORKFLOW_VAR_STAMP_TYPE, model.getSealType().name(),
|
||||
WORKFLOW_PENDING_STAMP_TYPE_DESC, model.getSealType().getDescription(),
|
||||
WORKFLOW_VAR_STAMP_RECIPIENT, MapUtils.emptyIfNull(essRecipientIdMap).getOrDefault(String.valueOf(model.getOuId()), ""),
|
||||
WORKFLOW_VAR_STAMP_CONTRACT_ID, visa.getContractId(),
|
||||
WORKFLOW_VAR_STAMP_CONTRACT_ID, req.getPhase() == VisaProcessPhase.PROJECT ? visa.getContractId() : visa.getContractIdPay(),
|
||||
WORKFLOW_PENDING_PDF_FILE_URL, req.getPdfFile().getFileUrl(),
|
||||
WORKFLOW_PENDING_INITIATOR_NAME, profile.getRealName(),
|
||||
IM_GROUP_BIZ_INFO_VISA_TYPE, visa.getType(),
|
||||
|
||||
@ -1,5 +1,63 @@
|
||||
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.ConstructionAreaInfo;
|
||||
import cn.axzo.apollo.api.res.TaskOrderToBasicRes;
|
||||
@ -28,7 +86,6 @@ import cn.axzo.im.center.api.vo.req.SendChatMessageRequest;
|
||||
import cn.axzo.im.center.api.vo.resp.GroupCreateResponse;
|
||||
import cn.axzo.im.center.common.enums.AppTypeEnum;
|
||||
import cn.axzo.im.center.common.enums.GroupType;
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.maokai.api.vo.request.CooperateShipQueryReq;
|
||||
import cn.axzo.maokai.api.vo.request.OrgNodeUserBriefInfoListReq;
|
||||
import cn.axzo.maokai.api.vo.response.CooperateShipResp;
|
||||
@ -117,62 +174,7 @@ 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
|
||||
@ -458,10 +460,12 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.attach(this.buildAttachUploadFile(visaId)) // 附件
|
||||
.imGroupId(visa.getImGroupId()) // 群组ID
|
||||
.approvalId(visa.getApprovalId()) //立项审批ID
|
||||
.approvalIdPay(visa.getApprovalIdPay()) //立项审批ID
|
||||
.approvalStatus(visa.getApprovalStatus()) //立项审批状态
|
||||
.approvalStatusPay(visa.getApprovalStatusPay()) // 价款审批状态
|
||||
.topic(visa.getTopic()) // 主题
|
||||
.contractId(visa.getContractId())
|
||||
.contractIdPay(visa.getContractIdPay())
|
||||
.stampStatus(visa.getStampStatus())
|
||||
.build();
|
||||
}
|
||||
@ -1952,16 +1956,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
// 在某些用印操作时,需要记录recordLog,用于详情展示,因为以前详情展示的操作日志是使用的recordLog
|
||||
insertRecordLog(req);
|
||||
|
||||
operateLogService.save(LogAddReq.builder()
|
||||
.scene("UPSERT_CHANGE_RECORD")
|
||||
.level("INFO")
|
||||
.tags(Lists.newArrayList(req.getVisaId().toString()))
|
||||
.message(new JSONObject()
|
||||
.fluentPut("param", req)
|
||||
.fluentPut("oldValue", oldValue)
|
||||
.fluentPut("newValue", this.getById(req.getVisaId()))
|
||||
.toJSONString())
|
||||
.build());
|
||||
operateLogService.save(req.getContext(), req.getVisaId(), //
|
||||
"request", req, //
|
||||
"oldValue", oldValue, //
|
||||
"newValue", this.getById(req.getVisaId()));
|
||||
}
|
||||
|
||||
public ChangeRecord toUpdate(UpdateVisaChangeReq req, ChangeRecord oldValue) {
|
||||
|
||||
@ -1,15 +1,22 @@
|
||||
package cn.axzo.nanopart.visa.server.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import cn.axzo.framework.domain.ServiceException;
|
||||
import cn.axzo.framework.jackson.utility.JSON;
|
||||
import cn.axzo.log.platform.client.feign.LogApi;
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.nanopart.visa.server.service.OperateLogService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@ -23,8 +30,39 @@ public class OperateLogServiceImpl implements OperateLogService {
|
||||
private ExecutorService asyncExecutor;
|
||||
|
||||
@Override
|
||||
public void save(LogAddReq param) {
|
||||
public void saveRequest(String scene, Long tag, Object request) {
|
||||
save(scene, tag, "request", JSON.toJSONString(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(String scene, Long tag, Object... arguments) {
|
||||
save(scene, String.valueOf(tag), arguments);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(String scene, String tag, Object... arguments) {
|
||||
if (arguments.length % 2 != 0)
|
||||
throw new ServiceException("messages length is not even");
|
||||
JSONObject message = new JSONObject();
|
||||
for (int i = 0; i < arguments.length; i += 2)
|
||||
message.put(String.valueOf(arguments[i]), arguments[i + 1]);
|
||||
save(LogAddReq.builder()
|
||||
.scene(scene)
|
||||
.level("INFO")
|
||||
.tags(Lists.newArrayList(tag))
|
||||
.message(message.toJSONString())
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(LogAddReq param) {
|
||||
List<String> tags = param.getTags();
|
||||
if (tags == null)
|
||||
tags = new ArrayList<>();
|
||||
else
|
||||
tags = new ArrayList<>(tags);
|
||||
tags.add("nanopart");
|
||||
tags.add("visa");
|
||||
try {
|
||||
// 目前操作日志的记录,不是核心流程,这个方法,不抛出异常,以免影响正常业务流程。
|
||||
// 异步处理
|
||||
|
||||
Loading…
Reference in New Issue
Block a user