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

This commit is contained in:
chenwenjian 2025-02-21 15:12:35 +08:00
commit 97226e8706
3 changed files with 46 additions and 7 deletions

View File

@ -26,8 +26,8 @@ public enum VisaStatusEnum {
APPROVING("approving","审批中", VisaLogTypeEnum.TO_APPRROVE),
COMPLETED("completed","已完成",VisaLogTypeEnum.APPROVE_COMPLETED),
FORBIDED("forbided","已废除",VisaLogTypeEnum.FORBIDED),
REPORT_FROM_APPROVE("report_from_approve","审批到待提报", null),
DECIDING_FROM_APPROVE("deciding_from_approve","审批到决策中", null),
REPORT_FROM_APPROVE("report_from_approve","审批不通过到待提报", null),
DECIDING_FROM_APPROVE("deciding_from_approve","审批不通过到决策中", null),
;
/**
@ -35,6 +35,11 @@ public enum VisaStatusEnum {
*/
private static Set<VisaStatusEnum> editFormStatus = Sets.newHashSet(DECIDING, EXECUTING, DECIDING_FROM_APPROVE);
/**
* 无效状态集合审批不通过到待提报/已废除
*/
private static Set<VisaStatusEnum> detailPageInvalidStatus = Sets.newHashSet(REPORT_FROM_APPROVE, FORBIDED);
private final String code;
private final String desc;
private final VisaLogTypeEnum logType;
@ -56,5 +61,12 @@ public enum VisaStatusEnum {
return Arrays.asList(VisaStatusEnum.values());
}
/**
* 无效状态集合审批不通过到待提报/已废除
*/
public static Set<VisaStatusEnum> detailPageInvalidStatus() {
return detailPageInvalidStatus;
}
}

View File

@ -186,6 +186,11 @@ public class VisaDetailByIdResponse {
*/
private List<String> relationVisaList;
/**
* 关联无效的变更单
*/
private List<String> relationInvalidVisaList;
/**
* 状态
*/

View File

@ -103,6 +103,7 @@ import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Pair;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@ -426,6 +427,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.relationTaskList(CollectionUtils.isEmpty(billMap.get(VisaBillTypeEnum.TASK)) ? Lists.newArrayList() : billMap.get(VisaBillTypeEnum.TASK)) // 关联任务单
.relationRectifyList(CollectionUtils.isEmpty(billMap.get(VisaBillTypeEnum.RECTIFY)) ? Lists.newArrayList() : billMap.get(VisaBillTypeEnum.RECTIFY)) //关联整改单
.relationVisaList(CollectionUtils.isEmpty(billMap.get(VisaBillTypeEnum.DESIGN_VISA)) ? Lists.newArrayList() : billMap.get(VisaBillTypeEnum.DESIGN_VISA)) // 关联变更单
.relationInvalidVisaList(this.detailPageInvalidVisaIdList(billMap.get(VisaBillTypeEnum.DESIGN_VISA)))
.amountChange(this.buildAmountChange(visa.getAmountChange())) // 变更金额
.changeContextAndDescriptionList(this.buildDesc(visaId)) //发生内容及说明
.status(visa.getStatus()) //状态TO_REPORT:待提报;DECIDING:决策中;EXECUTING:执行中;APPROVING:审批中;COMPLETED:已完成;FORBIDED:已废除;REPORT_FROM_APPROVE:审批到待提报;DECIDING_FROM_APPROVE:审批到决策中 EXECUTING
@ -437,6 +439,26 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.build();
}
/**
* 从visaIdList过滤无效的变更签证Id
*/
private List<String> detailPageInvalidVisaIdList(List<String> visaIdList) {
if (CollectionUtils.isEmpty(visaIdList)) {
return Collections.emptyList();
}
VisaChangePageSearchReq req = new VisaChangePageSearchReq();
req.setVisaIds(visaIdList.stream().map(item -> Long.valueOf(item)).collect(Collectors.toList()));
req.setStatuses(Lists.newArrayList(VisaStatusEnum.detailPageInvalidStatus()));
List<ChangeRecord> changeRecords = this.getFilter(req).list();
if (CollectionUtils.isEmpty(changeRecords)) {
return Collections.emptyList();
}
return changeRecords.stream().map(item -> item.getId().toString()).collect(Collectors.toList());
}
/**
* 构建变更金额
*/
@ -684,9 +706,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
IM_GROUP_BIZ_INFO_VISA_TYPE, req.getType().name()));
GroupCreateResponse imGroup = msgCenterGateway.createImGroup(request);
AssertUtil.notNull(imGroup, "IM 群创建失败");
updateImInfo(visaId, imGroup);
ChangeRecord visa = updateImInfo(visaId, imGroup);
ChangeRecord visa = changeRecordService.getById(visaId);
sendCardAndMsgToImGroup(ChangeRecordButtonOperationReq.builder()
.operatorPersonId(req.getOperatorPersonId())
.operatorOuId(req.getOperatorOuId())
@ -709,11 +730,12 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.build();
}
private void updateImInfo(Long visaId, GroupCreateResponse imGroup) {
ChangeRecord changeRecord = new ChangeRecord();
changeRecord.setId(visaId);
private ChangeRecord updateImInfo(Long visaId, GroupCreateResponse imGroup) {
ChangeRecord changeRecord = changeRecordService.getById(visaId);
AssertUtil.isNull(changeRecord.getImGroupId(), "已创建群聊,请勿重复创建");
changeRecord.setImGroupId(imGroup.getTid());
updateById(changeRecord);
return changeRecord;
}
/**