Merge remote-tracking branch 'origin/feature/REQ-3300' into feature/REQ-3300

This commit is contained in:
chenwenjian 2025-02-08 18:44:25 +08:00
commit d791d2b7f7

View File

@ -23,7 +23,10 @@ import cn.axzo.maokai.api.vo.request.CooperateShipQueryReq;
import cn.axzo.maokai.api.vo.request.OrgNodeUserBriefInfoListReq;
import cn.axzo.maokai.api.vo.response.CooperateShipResp;
import cn.axzo.maokai.api.vo.response.OrgNodeUserBriefInfoResp;
import cn.axzo.maokai.api.vo.response.OrganizationalUnitVO;
import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum;
import cn.axzo.msg.center.service.dto.PeerPerson;
import cn.axzo.msg.center.service.pending.request.CardSendRequest;
import cn.axzo.nanopart.visa.api.enums.VisaBillTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaChangeFieldEnum;
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
@ -100,6 +103,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.groovy.util.Maps;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
@ -134,6 +138,7 @@ 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_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;
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;
@ -206,6 +211,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
@Resource
private VisaCooperateShipGateway visaCooperateShipGateway;
@Autowired
private ChangeRecordService changeRecordService;
/**
* 状态变更
@ -1319,6 +1326,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
@Override
public void reDecision(ChangeRecordButtonOperationReq req) {
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
AssertUtil.notNull(visa, "未找到变洽签单据");
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
ImGroupOperationClearReq build = new ImGroupOperationClearReq();
@ -1326,6 +1335,38 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
build.setImGroupId(req.getImGroupId());
build.setClearAll(true);
changeRecordRelationService.clearImOperationParticipate(build);
// 重新发送卡片
sendCardToImGroup(req, visa);
}
private void sendCardToImGroup(ChangeRecordButtonOperationReq req, ChangeRecord visa) {
CardSendRequest cardRequest = new CardSendRequest();
cardRequest.setAppCode(MSG_CENTER_APP_CODE);
cardRequest.setTemplateCode(refreshableConfiguration.getImGroupCardTemplateCode());
cardRequest.setBizCode(IM_GROUP_BIZ_INFO_VISA_ID + ":" + visa.getId());
cardRequest.setSender(PeerPerson.create(req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId()));
cardRequest.setImSenderAccountAppType(AppTypeEnum.CMP);
cardRequest.setImReceiveAccounts(Sets.newHashSet(String.valueOf(visa.getImGroupId())));
OrganizationalUnitVO unitInfo = organizationalUnitGateway.getUnitInfo(req.getOperatorOuId());
PersonProfileDto profile = visaProfileGateway.getProfile(req.getOperatorPersonId());
String amountDesc = "不变";
if (visa.getAmountChange().compareTo(BigDecimal.ZERO) > 0) {
amountDesc = "增加" + visa.getAmountChange().toPlainString() + "";
} else if (visa.getAmountChange().compareTo(BigDecimal.ZERO) < 0) {
amountDesc = "减少" + visa.getAmountChange().toPlainString() + "";
}
cardRequest.setBizParam(new JSONObject(Maps.of(
"topic", visa.getTopic(),
"reason", visa.getReason(),
"initiatorName", profile.getRealName(),
"initiatorUnitName", unitInfo.getName(),
"visaType", visa.getType().getDesc(),
"amountChange", amountDesc
)));
msgCenterGateway.sendCardToCroup(cardRequest);
}
@Override