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

This commit is contained in:
yanglin 2025-04-23 15:44:20 +08:00
commit 98e4fb7961
3 changed files with 59 additions and 15 deletions

View File

@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Set;
@ -181,6 +182,11 @@ public class VisaChangePageSearchResp {
*/
private Set<VisaButtonTypeEnum> operateBtnSet;
/**
* 区域集合
*/
private List<VisaDetailByIdResponse.RelationAreaDetail> relationAreaList;
public String getTypeDesc() {
if (Objects.isNull(type)) {
return null;

View File

@ -1,20 +1,5 @@
package cn.axzo.nanopart.visa.api.response;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
@ -22,12 +7,25 @@ import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.VisaChangeTempCreateReq;
import cn.axzo.workflow.common.model.response.form.model.FormModelVO;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author xudawei
@ -253,6 +251,16 @@ public class VisaDetailByIdResponse {
*/
private VisaStampStatusEnum stampStatus;
/**
* 业务合同名称
*/
private String contractName;
/**
* 业务合同编号
*/
private String contractNo;
/**
* 相关审批表单
*/

View File

@ -1,6 +1,7 @@
package cn.axzo.nanopart.visa.server.service.impl;
import cn.axzo.apollo.api.req.QueryOrderToBasicReq;
import cn.axzo.apollo.api.res.ConstructionAreaDTO;
import cn.axzo.apollo.api.res.ConstructionAreaInfo;
import cn.axzo.apollo.api.res.TaskOrderToBasicRes;
import cn.axzo.apollo.workspace.api.workspace.req.QueryProjectApiReq;
@ -466,6 +467,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.contractId(visa.getContractId())
.contractIdPay(visa.getContractIdPay())
.stampStatus(visa.getStampStatus())
.contractName(visa.getContractName())
.contractNo(visa.getContractNo())
.build();
}
@ -1285,6 +1288,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
// 操作列按钮
Map<Long, Set<VisaButtonTypeEnum>> operateBtnMap = visaHelper.fetchBtnsByBizTypeAndStatus(records, req.getCurrentPersonId(), req.getCurrentOuId(), req.getCurrentWorkspaceId());
// 发生区域
Map<Long, List<VisaDetailByIdResponse.RelationAreaDetail>> visaIdAreaMap = buildRelationArea(records);
/*组装信息*/
return records.stream()
.map(r -> {
@ -1299,11 +1305,35 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
resp.setOperateBtnSet(CollUtil.isNotEmpty(operateBtnMap) ? operateBtnMap.get(r.getId()) : null);
// 审批流程状态
resp.setVisaApprovalStatus(buildApprovalStatus(r));
// 发生区域
resp.setRelationAreaList(visaIdAreaMap.getOrDefault(r.getId(), Collections.emptyList()));
return resp;
})
.collect(Collectors.toList());
}
private Map<Long, List<VisaDetailByIdResponse.RelationAreaDetail>> buildRelationArea(List<ChangeRecord> records) {
Map<Long, List<VisaDetailByIdResponse.RelationAreaDetail>> visaIdAreaMap = records.stream()
.collect(Collectors.toMap(ChangeRecord::getId, r -> VisaDetailByIdResponse.RelationAreaDetail.buildAreaWithObject(r.getRelationArea())));
List<ConstructionAreaDTO> areaFullNameInfoByAreaId = apolloConstructionAreaGateway.getAreaFullNameInfoByAreaId(visaIdAreaMap.values().stream()
.flatMap(Collection::stream)
.map(VisaDetailByIdResponse.RelationAreaDetail::getAreaId)
.distinct()
.collect(Collectors.toList()));
if (CollectionUtils.isNotEmpty(areaFullNameInfoByAreaId)) {
Map<Long, String> areaIdAndNameMap = areaFullNameInfoByAreaId.stream()
.collect(Collectors.toMap(ConstructionAreaDTO::getId, ConstructionAreaDTO::getAreaFullName, (v1, v2) -> v1));
visaIdAreaMap.forEach((visaId, areas) -> {
if (CollUtil.isNotEmpty(areaIdAndNameMap) && CollUtil.isNotEmpty(areas)) {
areas.forEach(area -> {
area.setAreaName(areaIdAndNameMap.get(area.getAreaId()));
});
}
});
}
return visaIdAreaMap;
}
/**
* 立项审批和价款审批状态联合决定审批状态
*