Merge remote-tracking branch 'origin/feature/REQ-3300' into feature/REQ-3300
# Conflicts: # visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java
This commit is contained in:
commit
ae7a384cec
@ -29,7 +29,7 @@ public interface VisaConstant {
|
||||
/**
|
||||
* IM 群扩展信息:群主 workspaceId
|
||||
*/
|
||||
String IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_ID = "ownerWorkspaceId";
|
||||
String IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID = "initiatorWorkspaceId";
|
||||
// **************** 业务传入审批的表单项组件的唯一的 KEY *****************
|
||||
// 单号
|
||||
String FORM_FIELD_NO = "no";
|
||||
|
||||
@ -13,10 +13,10 @@ import lombok.experimental.SuperBuilder;
|
||||
* @since 2025-02-07 15:39
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@SuperBuilder
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ImGroupOperationClearReq extends ImGroupOperationReq{
|
||||
|
||||
private Boolean clearAll;
|
||||
|
||||
@ -2,9 +2,9 @@ package cn.axzo.nanopart.visa.api.request;
|
||||
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@ -14,10 +14,10 @@ import javax.validation.constraints.NotNull;
|
||||
* @author wangli
|
||||
* @since 2025-02-05 17:30
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ImGroupOperationReq {
|
||||
/**
|
||||
* 变洽签 ID
|
||||
|
||||
@ -28,7 +28,7 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.im.center.api.enums.MqEventType.GROUP_ADD_MEMBERS;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_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;
|
||||
|
||||
@ -68,7 +68,7 @@ public class ImGroupAddMembersEventHandler implements EventHandler, Initializing
|
||||
|
||||
String visaId = (String) group.getBizGroupInfo().getOrDefault(IM_GROUP_BIZ_INFO_VISA_ID, "");
|
||||
String visaType = (String) group.getBizGroupInfo().getOrDefault(IM_GROUP_BIZ_INFO_VISA_TYPE, "");
|
||||
Long workspaceId = (Long) group.getBizGroupInfo().getOrDefault(IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_ID, 0L);
|
||||
Long workspaceId = (Long) group.getBizGroupInfo().getOrDefault(IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID, 0L);
|
||||
|
||||
PersonProfileDto memberProfile = profileMap.getOrDefault(member.getPersonId(), null);
|
||||
PersonProfileDto ownerProfile = profileMap.getOrDefault(group.getOwnerPersonId(), null);
|
||||
|
||||
@ -57,13 +57,14 @@ public class ImGroupRemoveMembersEventHandler implements EventHandler, Initializ
|
||||
private void removeMemberVote(GroupInfo group, GroupMemberInfo member) {
|
||||
Long visaId = (Long) group.getBizGroupInfo().getOrDefault(IM_GROUP_BIZ_INFO_VISA_ID, "");
|
||||
|
||||
ImGroupOperationClearReq build = new ImGroupOperationClearReq();
|
||||
build.setClearAll(false);
|
||||
build.setImGroupId(group.getTid());
|
||||
build.setVisaId(visaId);
|
||||
build.setOperatorPersonId(member.getPersonId());
|
||||
build.setOperatorOuId(member.getPersonOuId());
|
||||
changeRecordRelationService.clearImOperationParticipate(build);
|
||||
|
||||
changeRecordRelationService.clearImOperationParticipate(ImGroupOperationClearReq.builder()
|
||||
.clearAll(false)
|
||||
.imGroupId(group.getTid())
|
||||
.visaId(visaId)
|
||||
.operatorPersonId(member.getPersonId())
|
||||
.operatorOuId(member.getPersonOuId())
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -14,7 +14,16 @@ import cn.axzo.im.center.api.vo.resp.GroupGetOwnerResponse;
|
||||
import cn.axzo.im.center.common.enums.AppTypeEnum;
|
||||
import cn.axzo.msg.center.service.dto.PeerPerson;
|
||||
import cn.axzo.msg.center.service.pending.request.CardSendRequest;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.server.config.RefreshableConfiguration;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecord;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordConfirm;
|
||||
import cn.axzo.nanopart.visa.server.dto.VisaConfirmDto;
|
||||
import cn.axzo.nanopart.visa.server.rpc.MsgCenterGateway;
|
||||
import cn.axzo.nanopart.visa.server.rpc.VisaProfileGateway;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordConfirmService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Sets;
|
||||
@ -26,12 +35,14 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.im.center.api.enums.MqEventType.GROUP_CREATED;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_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.MSG_CENTER_APP_CODE;
|
||||
|
||||
/**
|
||||
@ -47,6 +58,14 @@ public class ImGroupsCreatedEventHandler implements EventHandler, InitializingBe
|
||||
private EventConsumer eventConsumer;
|
||||
@Resource
|
||||
private MsgCenterGateway msgCenterGateway;
|
||||
@Resource
|
||||
private RefreshableConfiguration refreshableConfiguration;
|
||||
@Resource
|
||||
private VisaProfileGateway visaProfileGateway;
|
||||
@Resource
|
||||
private ChangeRecordService changeRecordService;
|
||||
@Resource
|
||||
private ChangeRecordConfirmService changeRecordConfirmService;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
@ -69,17 +88,38 @@ public class ImGroupsCreatedEventHandler implements EventHandler, InitializingBe
|
||||
GroupGetOwnerResponse groupOwner = msgCenterGateway.getGroupOwner(ownerRequest);
|
||||
AssertUtil.isTrue(Objects.nonNull(groupOwner) && Objects.nonNull(groupOwner.getOwner()), "im group owner is null");
|
||||
GroupMemberInfo owner = groupOwner.getOwner();
|
||||
|
||||
Long visaId = (Long) bizGroupInfo.getOrDefault(IM_GROUP_BIZ_INFO_VISA_ID, "");
|
||||
String visaType = (String) bizGroupInfo.getOrDefault(IM_GROUP_BIZ_INFO_VISA_TYPE, "");
|
||||
Long ownerWorkspaceId = (Long) bizGroupInfo.getOrDefault(IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID, 0L);
|
||||
|
||||
ChangeRecord visa = changeRecordService.getById(visaId);
|
||||
AssertUtil.notNull(visa, "visa record is null");
|
||||
|
||||
List<ChangeRecordConfirm> creators = changeRecordConfirmService.findByCondition(VisaConfirmDto.builder()
|
||||
.visaId(visaId)
|
||||
.bizType(VisaConfirmBizTypeEnum.CREATE)
|
||||
.build());
|
||||
AssertUtil.notEmpty(creators, "creators is empty");
|
||||
|
||||
|
||||
// 发送卡片
|
||||
CardSendRequest cardRequest = new CardSendRequest();
|
||||
cardRequest.setAppCode(MSG_CENTER_APP_CODE);
|
||||
cardRequest.setTemplateCode("");
|
||||
Long visaId = (Long) bizGroupInfo.getOrDefault(IM_GROUP_BIZ_INFO_VISA_ID, "");
|
||||
cardRequest.setTemplateCode(refreshableConfiguration.getImGroupCardTemplateCode());
|
||||
cardRequest.setBizCode(IM_GROUP_BIZ_INFO_VISA_ID + ":" + visaId);
|
||||
Long ownerWorkspaceId = (Long) bizGroupInfo.getOrDefault(IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_ID, 0L);
|
||||
cardRequest.setSender(PeerPerson.create(owner.getPersonId(), owner.getPersonOuId(), ownerWorkspaceId));
|
||||
cardRequest.setImSenderAccountAppType(AppTypeEnum.CMP);
|
||||
cardRequest.setImReceiveAccounts(imReceiveAccounts);
|
||||
cardRequest.setBizParam(new JSONObject(Maps.of("topic", "")));
|
||||
// TODO
|
||||
cardRequest.setBizParam(new JSONObject(Maps.of(
|
||||
"topic", group.getName(),
|
||||
"reason", visa.getReason(),
|
||||
"initiatorName", creators.get(0),
|
||||
"initiatorUnitName", "",
|
||||
"visaType", VisaTypeEnum.valueOfCode(visaType).getDesc(),
|
||||
"amountChange", ""
|
||||
)));
|
||||
msgCenterGateway.sendCardToCroup(cardRequest);
|
||||
|
||||
// 普通群消息
|
||||
|
||||
@ -123,7 +123,7 @@ import static cn.axzo.nanopart.visa.api.constant.VisaConstant.FORM_FIELD_RELATIO
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.FORM_FIELD_RELATION_TASK_ORDER;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.FORM_FIELD_RELATION_VISA_ORDER;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.FORM_FIELD_TOPIC;
|
||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_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.WORKFLOW_PENDING_TOPIC;
|
||||
@ -587,7 +587,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
request.setAvatar("https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com:443/obs-public/obs-public/visa-group.png");
|
||||
request.setMemberLimit(100L);
|
||||
request.setBizGroupInfo(Maps.of(IM_GROUP_BIZ_INFO_VISA_ID, visaId,
|
||||
IM_GROUP_BIZ_INFO_OWNER_WORKSPACE_ID, req.getRelationWorkspaceId(),
|
||||
IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID, req.getRelationWorkspaceId(),
|
||||
IM_GROUP_BIZ_INFO_VISA_TYPE, req.getType().getCode()));
|
||||
GroupCreateResponse imGroup = msgCenterGateway.createImGroup(request);
|
||||
|
||||
@ -803,9 +803,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
|
||||
private LambdaQueryChainWrapper<ChangeRecord> getFilter(VisaChangePageSearchReq filter) {
|
||||
|
||||
Set<Long> visaList = changeRecordConfirmService.permissionVisaData("", filter.getCurrentPersonId(), filter.getCurrentWorkspaceId(), filter.getCurrentOuId());
|
||||
// Set<Long> visaList = changeRecordConfirmService.permissionVisaData("", filter.getCurrentPersonId(), filter.getCurrentWorkspaceId(), filter.getCurrentOuId());
|
||||
LambdaQueryChainWrapper<ChangeRecord> queryChainWrapper = lambdaQuery()
|
||||
.in(ChangeRecord::getId, visaList)
|
||||
// .in(ChangeRecord::getId, visaList)
|
||||
.eq(NumberUtil.isPositiveNumber(filter.getWorkspaceId()), ChangeRecord::getRelationWorkspaceId, filter.getWorkspaceId())
|
||||
.eq(Objects.nonNull(filter.getType()), ChangeRecord::getType, filter.getType())
|
||||
.eq(StringUtils.hasText(filter.getKeyword()), ChangeRecord::getNo, filter.getKeyword())
|
||||
@ -1188,6 +1188,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
|
||||
@Override
|
||||
public Long approveCreateOnlyVisaChangeRecord(VisaChangeApproveOnlyReq req) {
|
||||
ChangeRecord visa = getById(req.getVisaId());
|
||||
req.setOperatorWorkspaceId(visa.getRelationWorkspaceId());
|
||||
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
|
||||
|
||||
VisaChangeApproveCreateReq createReq = buildVisaChangeApproveCreateReqByVisaId(req.getVisaId());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user