Merge remote-tracking branch 'origin/feature/REQ-3300' into feature/REQ-3300
This commit is contained in:
commit
274385bff8
@ -56,6 +56,11 @@
|
||||
<artifactId>axzo-test-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
<artifactId>feign-httpclient</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.axzo.pokonyan</groupId>
|
||||
<artifactId>pokonyan</artifactId>
|
||||
|
||||
@ -14,6 +14,9 @@ spring:
|
||||
main:
|
||||
allow-bean-definition-overriding: true
|
||||
|
||||
server:
|
||||
shutdown: graceful
|
||||
|
||||
arthas:
|
||||
app-name: ${spring.application.name}
|
||||
agent-id: ${ARTHAS_AGENT_ID:${spring.profiles.active}-${spring.application.name}}
|
||||
|
||||
7
pom.xml
7
pom.xml
@ -24,6 +24,7 @@
|
||||
<mapstruct.version>1.4.2.Final</mapstruct.version>
|
||||
<poi.version>5.2.2</poi.version>
|
||||
<easyexcel.version>3.3.3</easyexcel.version>
|
||||
<feign-httpclient.version>11.8</feign-httpclient.version>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
@ -54,6 +55,12 @@
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
<artifactId>feign-httpclient</artifactId>
|
||||
<version>${feign-httpclient.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
||||
@ -159,6 +159,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
ChangeRecord record = changeRecordService.getById(req.getVisaId());
|
||||
AssertUtil.notNull(record, "未找到变洽签记录");
|
||||
AssertUtil.isTrue(Objects.equals(record.getImGroupId(), req.getImGroupId()), "IM群信息不匹配");
|
||||
AssertUtil.isTrue(Objects.equals(record.getStatus(), VisaStatusEnum.DECIDING), "单据未在决策中,已不支持该操作");
|
||||
|
||||
ChangeRecordRelation relation = new ChangeRecordRelation();
|
||||
relation.setVisaId(req.getVisaId());
|
||||
@ -192,6 +193,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
ChangeRecord record = changeRecordService.getById(req.getVisaId());
|
||||
AssertUtil.notNull(record, "未找到变洽签记录");
|
||||
AssertUtil.isTrue(Objects.equals(record.getImGroupId(), req.getImGroupId()), "IM 群信息不匹配");
|
||||
AssertUtil.isTrue(Objects.equals(record.getStatus(), VisaStatusEnum.DECIDING), "单据未在决策中,已不支持该操作");
|
||||
|
||||
if (Boolean.TRUE.equals(req.getClearAll())) {
|
||||
deleteByVisaId(req.getVisaId(), Lists.newArrayList(VisaRelationFieldEnum.IM_GROUP_PARTICIPATE));
|
||||
@ -259,8 +261,8 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
||||
if (req.getGroupTotalPersonCount() - 1 == agreeCount) {
|
||||
// 全部同意
|
||||
buttons.add(ImGroupButton.builder()
|
||||
.name(VisaButtonTypeEnum.EXECUTE.getDesc())
|
||||
.type(VisaButtonTypeEnum.EXECUTE.name())
|
||||
.name(VisaButtonTypeEnum.TO_APPROVE.getDesc())
|
||||
.type(VisaButtonTypeEnum.TO_APPROVE.name())
|
||||
.build());
|
||||
} else {
|
||||
buttons.add(ImGroupButton.builder()
|
||||
|
||||
@ -22,6 +22,7 @@ import cn.axzo.framework.domain.web.result.PageData;
|
||||
import cn.axzo.im.center.api.vo.PersonAccountAttribute;
|
||||
import cn.axzo.im.center.api.vo.req.GroupCreateRequest;
|
||||
import cn.axzo.im.center.api.vo.req.GroupDismissRequest;
|
||||
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;
|
||||
@ -1141,7 +1142,17 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
// Map<personId,OrgNodeUserBriefInfoResp>
|
||||
return nodeUserResp.stream().collect(Collectors.toMap(OrgNodeUserBriefInfoResp::getPersonId, Function.identity(), (v1, v2) -> v1));
|
||||
return nodeUserResp.stream().collect(Collectors.toMap(OrgNodeUserBriefInfoResp::getPersonId, Function.identity(), (v1, v2) -> {
|
||||
// 优先取exited=false的数据,若均为false,则取updateAt较大的数据
|
||||
if (Objects.nonNull(v1.getExited()) && Objects.nonNull(v2.getExited())) {
|
||||
if (v1.getExited() && !v2.getExited()) {
|
||||
return v2;
|
||||
} else if (!v1.getExited() && v2.getExited()) {
|
||||
return v1;
|
||||
}
|
||||
}
|
||||
return v1.getUpdateAt().compareTo(v2.getUpdateAt()) > 0 ? v1 : v2;
|
||||
}));
|
||||
}
|
||||
|
||||
private static VisaChangeInitiatorResp buildInitiatorResp(Map<Long, OrgNodeUserBriefInfoResp> initiatorMap, ChangeRecordConfirm i) {
|
||||
@ -1309,7 +1320,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
if (!req.isSkipNoOnlyOnce()) {
|
||||
// 单号项目内唯一性
|
||||
ChangeRecord visaRecord = getVisaByWorkspaceIdAndNo(req.getRelationWorkspaceId(), req.getNo());
|
||||
AssertUtil.isNull(visaRecord, "已存在相同单号的变更签证单据,请修改");
|
||||
// 编辑模式下需要排除自身
|
||||
if (Objects.nonNull(visaRecord) && !Objects.equals(visaRecord.getId(), req.getId())) {
|
||||
throw new ServiceException("已存在相同单号的变更签证单据,请修改");
|
||||
}
|
||||
}
|
||||
// 工程存在性
|
||||
ProjectDetailRes projectById = visaProjectApiGateway.getProjectById(req.getRelationProject());
|
||||
@ -1450,6 +1464,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void forbid(ChangeRecordButtonOperationReq req) {
|
||||
ChangeRecord record = getById(req.getVisaId());
|
||||
AssertUtil.notNull(record, "未找到变洽签单据");
|
||||
AssertUtil.isTrue(Objects.equals(record.getStatus(), VisaStatusEnum.TO_REPORT)
|
||||
&& Objects.equals(record.getStatus(), VisaStatusEnum.COMPLETED), "当前单据状态不支持该操作");
|
||||
|
||||
//校验操作人
|
||||
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
|
||||
@ -1567,6 +1584,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
public void reDecision(ChangeRecordButtonOperationReq req) {
|
||||
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
|
||||
AssertUtil.notNull(visa, "未找到变洽签单据");
|
||||
AssertUtil.isTrue(Objects.equals(visa.getStatus(), VisaStatusEnum.DECIDING)
|
||||
|| Objects.equals(visa.getStatus(), VisaStatusEnum.EXECUTING), "单据未在决策中或执行中,不支持该操作");
|
||||
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
|
||||
|
||||
ImGroupOperationClearReq build = new ImGroupOperationClearReq();
|
||||
@ -1576,17 +1595,18 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
changeRecordRelationService.clearImOperationParticipate(build);
|
||||
|
||||
// 重新发送卡片
|
||||
sendCardToImGroup(req, visa);
|
||||
sendCardAndMsgToImGroup(req, visa);
|
||||
}
|
||||
|
||||
private void sendCardToImGroup(ChangeRecordButtonOperationReq req, ChangeRecord visa) {
|
||||
private void sendCardAndMsgToImGroup(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())));
|
||||
HashSet<String> imReceiveAccounts = Sets.newHashSet(String.valueOf(visa.getImGroupId()));
|
||||
cardRequest.setImReceiveAccounts(imReceiveAccounts);
|
||||
|
||||
OrganizationalUnitVO unitInfo = organizationalUnitGateway.getUnitInfo(req.getOperatorOuId());
|
||||
PersonProfileDto profile = visaProfileGateway.getProfile(req.getOperatorPersonId());
|
||||
@ -1600,10 +1620,26 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
"amountChange", VisaHelper.buildChangeAmount(visa.getAmountChange())
|
||||
)));
|
||||
msgCenterGateway.sendCardToCroup(cardRequest);
|
||||
|
||||
// 普通群消息
|
||||
SendChatMessageRequest msgRequest = new SendChatMessageRequest();
|
||||
msgRequest.setAsTextMessage(visa.getTopic() + ",请各位审阅");
|
||||
msgRequest.setImReceiveAccounts(imReceiveAccounts);
|
||||
msgRequest.setSender(PersonAccountAttribute.builder()
|
||||
.personId(String.valueOf(req.getOperatorPersonId()))
|
||||
.ouId(req.getOperatorOuId())
|
||||
.workspaceId(req.getOperatorWorkspaceId())
|
||||
.appType(AppTypeEnum.CMP)
|
||||
.build());
|
||||
msgRequest.setBizId(IM_GROUP_BIZ_INFO_VISA_ID + ":" + visa.getId());
|
||||
msgCenterGateway.sendMsgToGroup(msgRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doExecute(ChangeRecordButtonOperationReq req) {
|
||||
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
|
||||
AssertUtil.notNull(visa, "未找到变洽签单据");
|
||||
AssertUtil.isTrue(Objects.equals(visa.getStatus(), VisaStatusEnum.DECIDING), "单据未在决策中,不支持该操作");
|
||||
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
|
||||
|
||||
changeStatus(ChangeStatusRequest.builder()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user