Merge remote-tracking branch 'origin/feature/REQ-3300' into feature/REQ-3300
This commit is contained in:
commit
a83ad7b79b
@ -1,10 +1,12 @@
|
||||
package cn.axzo.nanopart.visa.api.enums;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 签证业务类型
|
||||
@ -24,7 +26,25 @@ public enum VisaTypeEnum {
|
||||
private final String code;
|
||||
private final String desc;
|
||||
|
||||
|
||||
private static final Set<VisaTypeEnum> changeApprovedSet = Sets.newHashSet(DESIGN_CHANGE, TECHNOLOGY_APPROVED);
|
||||
private static final Set<VisaTypeEnum> projectVisaSet = Sets.newHashSet(PROJECT_VISA);
|
||||
|
||||
public static VisaTypeEnum valueOfCode(String code) {
|
||||
return Arrays.stream(VisaTypeEnum.values()).filter(item -> item.getCode().equals(code)).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设计变更/技术核定
|
||||
*/
|
||||
public static Set<VisaTypeEnum> fetchChangeApprovedSet() {
|
||||
return changeApprovedSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* 工程签证
|
||||
*/
|
||||
public static Set<VisaTypeEnum> fetchProjectVisaSet() {
|
||||
return projectVisaSet;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.nanopart.visa.server.domain;
|
||||
|
||||
import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@ -46,6 +47,13 @@ public class ChangeRecordConfirm extends BaseEntity<ChangeRecordConfirm> {
|
||||
@TableField(value = "biz_type")
|
||||
private VisaConfirmBizTypeEnum bizType;
|
||||
|
||||
|
||||
/**
|
||||
* 业务类型,CONFIRM:确认;CREATE:创建
|
||||
*/
|
||||
@TableField(value = "visa_type")
|
||||
private VisaTypeEnum visaType;
|
||||
|
||||
/**
|
||||
* 确认人
|
||||
*/
|
||||
|
||||
@ -3,6 +3,7 @@ package cn.axzo.nanopart.visa.server.dto;
|
||||
import cn.axzo.karma.client.feign.tyr.response.MergeMatchDataResp;
|
||||
import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -89,10 +90,20 @@ public class VisaConfirmDto {
|
||||
|
||||
private Long operator;
|
||||
|
||||
/**
|
||||
* 变更签证类型集合
|
||||
*/
|
||||
private Set<VisaTypeEnum> visaTypes;
|
||||
|
||||
|
||||
/**
|
||||
* 变更签证类型
|
||||
*/
|
||||
private VisaTypeEnum visaType;
|
||||
/**
|
||||
* 根据DataItem创建Dto
|
||||
*/
|
||||
public static VisaConfirmDto create(List<MergeMatchDataResp.DataItem> dataItems) {
|
||||
public static VisaConfirmDto create(List<MergeMatchDataResp.DataItem> dataItems, Set<VisaTypeEnum> visaTypes) {
|
||||
|
||||
VisaConfirmDto dto = new VisaConfirmDto();
|
||||
|
||||
@ -119,6 +130,7 @@ public class VisaConfirmDto {
|
||||
dto.setNodeIds(nodeIds);
|
||||
}
|
||||
}
|
||||
dto.setVisaTypes(visaTypes);
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package cn.axzo.nanopart.visa.server.service;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
|
||||
import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecordConfirm;
|
||||
@ -67,7 +68,7 @@ public interface ChangeRecordConfirmService {
|
||||
* @param currentOuId 当前登录人的单位Id
|
||||
* @return 变更签证visaId集合
|
||||
*/
|
||||
Set<Long> permissionVisaData(String dataObjectCode, Long currentPersonId, Long currentWorkspaceId, Long currentOuId);
|
||||
Set<Long> permissionVisaData(String dataObjectCode, Long currentPersonId, Long currentWorkspaceId, Long currentOuId, Set<VisaTypeEnum> visaTypes);
|
||||
|
||||
/**
|
||||
* 获取指定的变洽签所有的确认人
|
||||
|
||||
@ -11,6 +11,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
|
||||
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
|
||||
import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse;
|
||||
import cn.axzo.nanopart.visa.server.domain.ChangeRecord;
|
||||
@ -80,6 +81,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
List<ChangeRecordConfirm> visaConfirmDtos = BeanMapper.copyList(dtoList, ChangeRecordConfirm.class, (s, t) -> {
|
||||
t.setCreateBy(s.getOperator());
|
||||
t.setUpdateBy(s.getOperator());
|
||||
t.setVisaType(s.getVisaType());
|
||||
});
|
||||
return this.saveOrUpdateBatch(visaConfirmDtos);
|
||||
}
|
||||
@ -303,6 +305,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
.eq(Objects.nonNull(dto.getProjectId()), ChangeRecordConfirm::getProjectId, dto.getProjectId())
|
||||
.eq(Objects.nonNull(dto.getType()), ChangeRecordConfirm::getType, dto.getType())
|
||||
.eq(Objects.nonNull(dto.getBizType()), ChangeRecordConfirm::getBizType, dto.getBizType())
|
||||
.in(CollectionUtils.isNotEmpty(dto.getVisaTypes()), ChangeRecordConfirm::getVisaType, dto.getVisaTypes())
|
||||
.eq(ChangeRecordConfirm::getIsDelete, 0);
|
||||
}
|
||||
|
||||
@ -315,7 +318,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
* @param currentOuId 当前登录人的单位Id
|
||||
* @return 变更签证visaId集合
|
||||
*/
|
||||
public Set<Long> permissionVisaData(String dataObjectCode, Long currentPersonId, Long currentWorkspaceId, Long currentOuId) {
|
||||
public Set<Long> permissionVisaData(String dataObjectCode, Long currentPersonId, Long currentWorkspaceId, Long currentOuId, Set<VisaTypeEnum> visaTypes) {
|
||||
MatchDataObjectReq req = new MatchDataObjectReq();
|
||||
req.setDataObjectCode(dataObjectCode);
|
||||
req.setPersonId(currentPersonId);
|
||||
@ -325,7 +328,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
MergeMatchDataResp mergedDataObject = match.getMergedDataObject();
|
||||
List<MergeMatchDataResp.DataItem> dataItems = mergedDataObject.getDataItems();
|
||||
|
||||
List<ChangeRecordConfirm> confirmList = this.findByCondition(VisaConfirmDto.create(dataItems));
|
||||
List<ChangeRecordConfirm> confirmList = this.findByCondition(VisaConfirmDto.create(dataItems, visaTypes));
|
||||
Set<Long> visaIdList = confirmList.stream().map(ChangeRecordConfirm::getVisaId).collect(Collectors.toSet());
|
||||
if (CollectionUtils.isEmpty(visaIdList)) {
|
||||
return Sets.newHashSet();
|
||||
|
||||
@ -68,6 +68,7 @@ import cn.axzo.nanopart.visa.server.service.ChangeRecordLogService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordRelationService;
|
||||
import cn.axzo.nanopart.visa.server.service.ChangeRecordService;
|
||||
import cn.axzo.nanopart.visa.server.service.VisaHelper;
|
||||
import cn.axzo.nanopart.visa.server.utils.Constants;
|
||||
import cn.axzo.orggateway.api.nodeuser.dto.OrgNodeUserDTO;
|
||||
import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq;
|
||||
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
|
||||
@ -89,6 +90,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
@ -102,6 +104,7 @@ import java.math.BigDecimal;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@ -742,8 +745,18 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
public PageData<VisaChangePageSearchResp> page(VisaChangePageSearchReq req) {
|
||||
/*筛查条件校验*/
|
||||
validSearchCondition(req);
|
||||
|
||||
// Set<Long> permissionVisaIdSet = this.fetchPermissionVisaIdSet(req);
|
||||
// if (CollectionUtils.isEmpty(permissionVisaIdSet)) {
|
||||
// return PageData.<VisaChangePageSearchResp>builder()
|
||||
// .page(Math.toIntExact(req.getPage()))
|
||||
// .pageSize(Math.toIntExact(req.getPageSize()))
|
||||
// .totalCount(0L)
|
||||
// .list(Lists.newArrayList())
|
||||
// .build();
|
||||
// }
|
||||
/*数据查询*/
|
||||
Page<ChangeRecord> page = getFilter(req).page(new Page<>(req.getPage(), req.getPageSize()));
|
||||
Page<ChangeRecord> page = getFilter(req, Sets.newHashSet()).page(new Page<>(req.getPage(), req.getPageSize()));
|
||||
return PageData.<VisaChangePageSearchResp>builder()
|
||||
.page(Math.toIntExact(page.getCurrent()))
|
||||
.pageSize(Math.toIntExact(page.getSize()))
|
||||
@ -778,8 +791,17 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
public void export(VisaChangeExportReq req) {
|
||||
VisaChangePageSearchReq filter = req.getFilter();
|
||||
List<VisaChangeFieldEnum> fields = req.getFields();
|
||||
|
||||
// Set<Long> permissionVisaIdSet = this.fetchPermissionVisaIdSet(filter);
|
||||
List<ChangeRecord> changeRecordList = Lists.newArrayList();
|
||||
// if (CollectionUtils.isNotEmpty(permissionVisaIdSet)) {
|
||||
// /*获取数据*/
|
||||
// changeRecordList = getFilter(filter,permissionVisaIdSet).list();
|
||||
// }
|
||||
|
||||
/*获取数据*/
|
||||
List<ChangeRecord> changeRecordList = getFilter(filter).list();
|
||||
changeRecordList = getFilter(filter,Sets.newHashSet()).list();
|
||||
|
||||
AssertUtil.isTrue(CollUtil.isNotEmpty(changeRecordList), "");
|
||||
/*数据转换*/
|
||||
/*导出文excel并上传至云*/
|
||||
@ -791,11 +813,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
// reportServiceSDK.asyncUploadReportPsw(scene, fileName, null, false, );
|
||||
}
|
||||
|
||||
private LambdaQueryChainWrapper<ChangeRecord> getFilter(VisaChangePageSearchReq filter) {
|
||||
private LambdaQueryChainWrapper<ChangeRecord> getFilter(VisaChangePageSearchReq filter,Set<Long> permissionVisaIdSet) {
|
||||
|
||||
// Set<Long> visaList = changeRecordConfirmService.permissionVisaData("", filter.getCurrentPersonId(), filter.getCurrentWorkspaceId(), filter.getCurrentOuId());
|
||||
LambdaQueryChainWrapper<ChangeRecord> queryChainWrapper = lambdaQuery()
|
||||
// .in(ChangeRecord::getId, visaList)
|
||||
// .in(ChangeRecord::getId, permissionVisaIdSet)
|
||||
.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())
|
||||
@ -817,6 +838,21 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
return queryChainWrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取权限的变更签证Id集合
|
||||
*/
|
||||
private Set<Long> fetchPermissionVisaIdSet(VisaChangePageSearchReq filter) {
|
||||
Set<Long> changeApproveVisaIdSet = changeRecordConfirmService.permissionVisaData(Constants.CHANGE_APPROVED_DATA_OBJECT, filter.getCurrentPersonId(), filter.getCurrentWorkspaceId(), filter.getCurrentOuId(), VisaTypeEnum.fetchChangeApprovedSet());
|
||||
Set<Long> projectVisaIdSet = changeRecordConfirmService.permissionVisaData(Constants.PROJECT_VISA_DATA_OBJECT, filter.getCurrentPersonId(), filter.getCurrentWorkspaceId(), filter.getCurrentOuId(), VisaTypeEnum.fetchProjectVisaSet());
|
||||
HashSet<Long> permissionIdSet = Sets.newHashSet();
|
||||
permissionIdSet.addAll(changeApproveVisaIdSet);
|
||||
permissionIdSet.addAll(projectVisaIdSet);
|
||||
if (CollectionUtils.isEmpty(permissionIdSet)) {
|
||||
return Sets.newHashSet();
|
||||
}
|
||||
return permissionIdSet;
|
||||
}
|
||||
|
||||
|
||||
private Map<Long, OrgNodeUserBriefInfoResp> getPersonBriefInfoMap(Long workspaceId, List<Long> initiatorPersonIds) {
|
||||
OrgNodeUserBriefInfoListReq nodeUserReq = OrgNodeUserBriefInfoListReq.builder()
|
||||
@ -946,6 +982,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.visaId(changeRecord.getId())
|
||||
.type(SaasCooperateShipCooperateTypeEnum.getByCode(req.getOperatorOuType()))
|
||||
.bizType(VisaConfirmBizTypeEnum.CREATE)
|
||||
.visaType(changeRecord.getType())
|
||||
.personId(req.getOperatorPersonId())
|
||||
.ouId(req.getOperatorOuId())
|
||||
.workspaceId(req.getRelationWorkspaceId())
|
||||
@ -959,6 +996,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.visaId(changeRecord.getId())
|
||||
.type(person.getType())
|
||||
.bizType(VisaConfirmBizTypeEnum.CONFIRM)
|
||||
.visaType(changeRecord.getType())
|
||||
.personId(person.getPersonId())
|
||||
.ouId(person.getOuId())
|
||||
.workspaceId(changeRecord.getRelationWorkspaceId())
|
||||
|
||||
@ -36,4 +36,13 @@ public class Constants {
|
||||
*/
|
||||
public static final Integer APPROVE_ORDER_BY = 5;
|
||||
|
||||
/**
|
||||
* 变更核定数据权限的code
|
||||
*/
|
||||
public static final String CHANGE_APPROVED_DATA_OBJECT = "change_approved";
|
||||
|
||||
/**
|
||||
* 工程签证数据权限的code
|
||||
*/
|
||||
public static final String PROJECT_VISA_DATA_OBJECT = "project_visa";
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user