|
|
@@ -29,7 +29,6 @@ import com.hz.pm.api.external.MhApiClient; |
|
|
|
import com.hz.pm.api.external.MhFileClient; |
|
|
|
import com.hz.pm.api.external.model.dto.MhPurchaseIntentionDTO; |
|
|
|
import com.hz.pm.api.external.model.dto.MhPurchaseNoticeDTO; |
|
|
|
import com.hz.pm.api.external.model.enumeration.MhUnitStripEnum; |
|
|
|
import com.hz.pm.api.external.todo.enumerization.MHTodoTypeEnum; |
|
|
|
import com.hz.pm.api.projectdeclared.chain.ProjectStatusRewriteHandlerContext; |
|
|
|
import com.hz.pm.api.projectdeclared.helper.MhXcfhxReportHelper; |
|
|
@@ -100,8 +99,7 @@ import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
import static com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus.PURCHASE_NOTICE_FAILED; |
|
|
|
import static com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus.TO_BE_SUBMIT_PURCHASE_NOTICE; |
|
|
|
import static com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* <p> |
|
|
@@ -720,178 +718,156 @@ public class PurchaseManage { |
|
|
|
} |
|
|
|
|
|
|
|
public AdaptionProgressVO adaptionProgress(PurchaseAdaptionListReq req) { |
|
|
|
LambdaQueryWrapper<Purchase> query = Wrappers.lambdaQuery(Purchase.class) |
|
|
|
.select(Purchase::getStatus, Purchase::getId) |
|
|
|
.eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode()) |
|
|
|
.exists(ExistsSqlConst.PURCHASE_EXISTS_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", TenderStateChangeEvent.SUBMIT_PURCHASE_CONSTRUCTION_INFO) |
|
|
|
.notExists(ExistsSqlConst.PURCHASE_EXISTS_PROJECT |
|
|
|
+ "and (np.stage = {0} or np.status in ({1},{2}))", ProjectStatus.STOPPED.getCode(), |
|
|
|
ProjectStatus.CHANGE_APPLY_PASSED.getCode(), ProjectStatus.DELETED_PASSED.getCode()) |
|
|
|
.orderByDesc(Purchase::getCreateOn); |
|
|
|
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); |
|
|
|
if (!purchaseService.buildPurchaseQueryPermission(query, user)) { |
|
|
|
return null; |
|
|
|
UnitQueryState unitQueryState = mhUnitQueryAuthHelper.listCanViewUnitIds(req.getBuildOrgCode()); |
|
|
|
if (!unitQueryState.isState()) { |
|
|
|
return new AdaptionProgressVO(); |
|
|
|
} |
|
|
|
if (req.hasProjectQuery()) { |
|
|
|
List<Long> projectIds = filterProjectIdsForPurchase(req); |
|
|
|
if (projectIds.isEmpty()) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
query.in(Purchase::getProjectId, projectIds); |
|
|
|
LambdaQueryWrapper<Project> projQuery = Wrappers.lambdaQuery(Project.class) |
|
|
|
.eq(Project::getNewest, Boolean.TRUE) |
|
|
|
.eq(req.getProjectYear() != null, Project::getProjectYear, req.getProjectYear()) |
|
|
|
.like(StrUtil.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) |
|
|
|
.like(StrUtil.isNotBlank(req.getBuildOrgName()), Project::getBuildOrgName, req.getBuildOrgName()) |
|
|
|
.eq(req.getUnitStrip() != null, Project::getUnitStrip, req.getUnitStrip()); |
|
|
|
BizUtils.notEmpty(unitQueryState.getUnitIds(), w -> { |
|
|
|
List<String> buildOrgCodeStr = CollUtils.convert(w, String::valueOf); |
|
|
|
projQuery.in(Project::getBuildOrgCode, buildOrgCodeStr); |
|
|
|
}); |
|
|
|
projQuery.select(Project::getId); |
|
|
|
projQuery.exists(ExistsSqlConst.PROJECT_EXISTS_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", ProjectStateChangeEvent.SUBMIT_PURCHASE_CONTRACT_RECORD) |
|
|
|
.exists(ExistsSqlConst.PROJECT_EXISTS_PURCHASE |
|
|
|
+ " and np.bid_type = {0}", BidTypeEnum.BUILD_APP.getCode()) |
|
|
|
.notIn(Project::getStatus, ProjectStatusConstant.CHANGE_STOP_DELETE_PASSED); |
|
|
|
List<Long> projectIds = CollUtils.fieldList(projectService.list(projQuery), Project::getId); |
|
|
|
if (projectIds.isEmpty()) { |
|
|
|
return new AdaptionProgressVO(); |
|
|
|
} |
|
|
|
query.like(StrUtil.isNotBlank(req.getBidName()), Purchase::getBidName, req.getBidName()) |
|
|
|
.le(req.getCreateOnMax() != null, Purchase::getCreateOn, req.getCreateOnMax()) |
|
|
|
.ge(req.getCreateOnMin() != null, Purchase::getCreateOn, req.getCreateOnMin()); |
|
|
|
List<Purchase> purchases = purchaseService.list(query); |
|
|
|
Wrapper<Purchase> purQuery = Wrappers.lambdaQuery(Purchase.class) |
|
|
|
.select(Purchase::getProjectId, Purchase::getBidType, Purchase::getStatus) |
|
|
|
.in(Purchase::getProjectId, projectIds) |
|
|
|
.eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode()); |
|
|
|
List<Purchase> purchases = purchaseService.list(purQuery); |
|
|
|
return adaptionProgress(purchases); |
|
|
|
} |
|
|
|
|
|
|
|
private static final List<Integer> ON_ADAPTING_STATUS = Arrays.asList( |
|
|
|
TenderMainStatus.TO_BE_SUBMIT_OPERATION_PLAN.getCode(), |
|
|
|
TenderMainStatus.WAIT_ORG_CONFIRM.getCode(), |
|
|
|
TenderAdaptStatus.WITHOUT_ADAPT_INFO.getCode(), |
|
|
|
TenderAdaptStatus.ADAPT_INFO_AUDIT.getCode(), |
|
|
|
TenderAdaptStatus.ADAPT_INFO_FAILED.getCode(), |
|
|
|
TenderTestValidStatus.WITHOUT_TEST_VALID_INFO.getCode(), |
|
|
|
TenderTestValidStatus.TEST_VALID_INFO_AUDIT.getCode(), |
|
|
|
TenderTestValidStatus.TEST_VALID_INFO_FAILED.getCode(), |
|
|
|
TenderSelfTestStatus.WITHOUT_SELF_TEST_INFO.getCode(), |
|
|
|
TenderSelfTestStatus.SELF_TEST_INFO_FAILED.getCode(), |
|
|
|
TenderSelfTestStatus.SELF_TEST_INFO_AUDIT.getCode() |
|
|
|
); |
|
|
|
|
|
|
|
public AdaptionProgressVO adaptionProgress(List<Purchase> purchases) { |
|
|
|
Map<ITenderStatus, Long> statusCountMap = CollUtils.groupCount(purchases, |
|
|
|
w -> { |
|
|
|
ITenderStatus status = TenderMainStatus.getNoNull(w.getStatus()); |
|
|
|
if (TenderMainStatus.TO_BE_SUBMIT_OPERATION_PLAN.eq(status)) { |
|
|
|
return TenderMainStatus.TO_BE_SUBMIT_OPERATION_PLAN; |
|
|
|
} else if (TenderMainStatus.WAIT_ORG_CONFIRM.eq(status)) { |
|
|
|
return TenderMainStatus.WAIT_ORG_CONFIRM; |
|
|
|
} else if (TenderAdaptStatus.WITHOUT_ADAPT_INFO.eq(status) |
|
|
|
|| TenderAdaptStatus.ADAPT_INFO_AUDIT.eq(status) |
|
|
|
|| TenderAdaptStatus.ADAPT_INFO_FAILED.eq(status)) { |
|
|
|
return TenderAdaptStatus.WITHOUT_ADAPT_INFO; |
|
|
|
} else if (TenderSelfTestStatus.WITHOUT_SELF_TEST_INFO.eq(status) |
|
|
|
|| TenderSelfTestStatus.SELF_TEST_INFO_AUDIT.eq(status) |
|
|
|
|| TenderSelfTestStatus.SELF_TEST_INFO_FAILED.eq(status)) { |
|
|
|
return TenderSelfTestStatus.WITHOUT_SELF_TEST_INFO; |
|
|
|
} else if (TenderTestValidStatus.WITHOUT_TEST_VALID_INFO.eq(status) |
|
|
|
|| TenderTestValidStatus.TEST_VALID_INFO_AUDIT.eq(status) |
|
|
|
|| TenderTestValidStatus.TEST_VALID_INFO_FAILED.eq(status)) { |
|
|
|
return TenderTestValidStatus.WITHOUT_TEST_VALID_INFO; |
|
|
|
} else { |
|
|
|
return status; |
|
|
|
} |
|
|
|
}); |
|
|
|
Map<Long, List<Purchase>> purchaseMap = CollUtils.group(purchases, Purchase::getProjectId); |
|
|
|
Map<ProjectStatus, Long> statusCountMap = CollUtils.groupCount(purchaseMap.values(), w -> { |
|
|
|
List<Integer> buildAppBidStatus = w.stream() |
|
|
|
.filter(x -> BidTypeEnum.BUILD_APP.eq(x.getBidType())) |
|
|
|
.map(Purchase::getStatus) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (CollUtil.allMatch(buildAppBidStatus, TO_BE_SUBMIT_OPERATION_PLAN::eq)) { |
|
|
|
return ProjectStatus.TO_BE_ADAPT; |
|
|
|
} else if (CollUtil.anyMatch(buildAppBidStatus, ON_ADAPTING_STATUS::contains)) { |
|
|
|
return ProjectStatus.ON_ADAPTING; |
|
|
|
} else { |
|
|
|
return ProjectStatus.FINISH_ADAPT; |
|
|
|
} |
|
|
|
}); |
|
|
|
return AdaptionProgressVO.builder() |
|
|
|
.withoutAdaptionInfo(statusCountMap.getOrDefault(TenderAdaptStatus.WITHOUT_ADAPT_INFO, 0L)) |
|
|
|
.withoutOperationCount(statusCountMap.getOrDefault(TenderMainStatus.TO_BE_SUBMIT_OPERATION_PLAN, 0L)) |
|
|
|
.withoutOrgConfirmCount(statusCountMap.getOrDefault(TenderMainStatus.WAIT_ORG_CONFIRM, 0L)) |
|
|
|
.withoutSelfTestCount(statusCountMap.getOrDefault(TenderSelfTestStatus.WITHOUT_SELF_TEST_INFO, 0L)) |
|
|
|
.withoutTestValidCount(statusCountMap.getOrDefault(TenderTestValidStatus.WITHOUT_TEST_VALID_INFO, 0L)) |
|
|
|
.totalCount(purchases.size()) |
|
|
|
.toBeAdapt(statusCountMap.getOrDefault(ProjectStatus.TO_BE_ADAPT, 0L)) |
|
|
|
.onAdapting(statusCountMap.getOrDefault(ProjectStatus.ON_ADAPTING, 0L)) |
|
|
|
.finishAdapt(statusCountMap.getOrDefault(ProjectStatus.FINISH_ADAPT, 0L)) |
|
|
|
.totalCount(purchaseMap.size()) |
|
|
|
.build(); |
|
|
|
} |
|
|
|
|
|
|
|
private PageVo<PurchaseAdaptionListVO> queryData(PurchaseAdaptionListReq req) { |
|
|
|
LambdaQueryWrapper<Purchase> query = Wrappers.lambdaQuery(Purchase.class) |
|
|
|
.eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode()) |
|
|
|
.exists(ExistsSqlConst.PURCHASE_EXISTS_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", TenderStateChangeEvent.SUBMIT_PURCHASE_CONSTRUCTION_INFO) |
|
|
|
.notExists(ExistsSqlConst.PURCHASE_EXISTS_PROJECT |
|
|
|
+ "and (np.stage = {0} or np.status in ({1},{2}))", ProjectStatus.STOPPED.getCode(), |
|
|
|
ProjectStatus.CHANGE_APPLY_PASSED.getCode(), ProjectStatus.DELETED_PASSED.getCode()) |
|
|
|
.orderByDesc(Purchase::getCreateOn); |
|
|
|
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); |
|
|
|
if (!purchaseService.buildPurchaseQueryPermission(query, user)) { |
|
|
|
private PageVo<ProjectLibListItemVO> queryData(PurchaseAdaptionListReq req) { |
|
|
|
UnitQueryState unitQueryState = mhUnitQueryAuthHelper.listCanViewUnitIds(req.getBuildOrgCode()); |
|
|
|
if (!unitQueryState.isState()) { |
|
|
|
return PageVo.empty(); |
|
|
|
} |
|
|
|
if (req.hasProjectQuery()) { |
|
|
|
List<Long> projectIds = filterProjectIdsForPurchase(req); |
|
|
|
if (projectIds.isEmpty()) { |
|
|
|
return PageVo.empty(); |
|
|
|
} |
|
|
|
query.in(Purchase::getProjectId, projectIds); |
|
|
|
} |
|
|
|
query.like(StrUtil.isNotBlank(req.getBidName()), Purchase::getBidName, req.getBidName()) |
|
|
|
.le(req.getCreateOnMax() != null, Purchase::getCreateOn, req.getCreateOnMax()) |
|
|
|
.ge(req.getCreateOnMin() != null, Purchase::getCreateOn, req.getCreateOnMin()); |
|
|
|
LambdaQueryWrapper<Project> projQuery = Wrappers.lambdaQuery(Project.class) |
|
|
|
.eq(Project::getNewest, Boolean.TRUE) |
|
|
|
.eq(req.getProjectYear() != null, Project::getProjectYear, req.getProjectYear()) |
|
|
|
.like(StrUtil.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) |
|
|
|
.like(StrUtil.isNotBlank(req.getBuildOrgName()), Project::getBuildOrgName, req.getBuildOrgName()) |
|
|
|
.eq(req.getUnitStrip() != null, Project::getUnitStrip, req.getUnitStrip()); |
|
|
|
BizUtils.notEmpty(unitQueryState.getUnitIds(), w -> { |
|
|
|
List<String> buildOrgCodeStr = CollUtils.convert(w, String::valueOf); |
|
|
|
projQuery.in(Project::getBuildOrgCode, buildOrgCodeStr); |
|
|
|
}); |
|
|
|
ProjectManageUtil.projectBaseQuery(projQuery); |
|
|
|
projQuery.exists(ExistsSqlConst.PROJECT_EXISTS_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", ProjectStateChangeEvent.SUBMIT_PURCHASE_CONTRACT_RECORD) |
|
|
|
.exists(ExistsSqlConst.PROJECT_EXISTS_PURCHASE |
|
|
|
+ " and np.bid_type = {0}", BidTypeEnum.BUILD_APP.getCode()) |
|
|
|
.notIn(Project::getStatus, ProjectStatusConstant.CHANGE_STOP_DELETE_PASSED); |
|
|
|
if (req.getStatus() != null) { |
|
|
|
ITenderStatus tenderStatus = TenderMainStatus.getNoNull(req.getStatus()); |
|
|
|
if (tenderStatus.eq(TenderMainStatus.TO_BE_SUBMIT_OPERATION_PLAN)) { |
|
|
|
query.eq(Purchase::getStatus, TenderMainStatus.TO_BE_SUBMIT_OPERATION_PLAN.getCode()); |
|
|
|
} else if (tenderStatus.eq(TenderAdaptStatus.WITHOUT_ADAPT_INFO)) { |
|
|
|
query.in(Purchase::getStatus, TenderAdaptStatus.WITHOUT_ADAPT_INFO.getCode(), |
|
|
|
TenderAdaptStatus.ADAPT_INFO_FAILED.getCode(), |
|
|
|
TenderAdaptStatus.ADAPT_INFO_AUDIT.getCode()); |
|
|
|
} else if (tenderStatus.eq(TenderSelfTestStatus.WITHOUT_SELF_TEST_INFO)) { |
|
|
|
query.in(Purchase::getStatus, TenderSelfTestStatus.WITHOUT_SELF_TEST_INFO.getCode(), |
|
|
|
TenderSelfTestStatus.SELF_TEST_INFO_FAILED.getCode(), |
|
|
|
TenderSelfTestStatus.SELF_TEST_INFO_AUDIT.getCode()); |
|
|
|
} else if (tenderStatus.eq(TenderTestValidStatus.WITHOUT_TEST_VALID_INFO)) { |
|
|
|
query.in(Purchase::getStatus, TenderTestValidStatus.WITHOUT_TEST_VALID_INFO.getCode(), |
|
|
|
TenderTestValidStatus.TEST_VALID_INFO_FAILED.getCode(), |
|
|
|
TenderTestValidStatus.TEST_VALID_INFO_AUDIT.getCode()); |
|
|
|
} else if (tenderStatus.eq(TenderMainStatus.WAIT_ORG_CONFIRM)) { |
|
|
|
query.eq(Purchase::getStatus, TenderMainStatus.WAIT_ORG_CONFIRM.getCode()); |
|
|
|
if (ProjectStatus.TO_BE_ADAPT.eq(req.getStatus())) { |
|
|
|
projQuery.notExists(ExistsSqlConst.PROJECT_EXISTS_PURCHASE_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", TenderStateChangeEvent.SUBMIT_OPERATION_PLAN); |
|
|
|
} else if (ProjectStatus.ON_ADAPTING.eq(req.getStatus())) { |
|
|
|
projQuery.exists(ExistsSqlConst.PROJECT_EXISTS_PURCHASE_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", TenderStateChangeEvent.SUBMIT_OPERATION_PLAN) |
|
|
|
.notExists(ExistsSqlConst.PROJECT_EXISTS_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", ProjectStateChangeEvent.SUBMIT_PURCHASE_ORG_CONFIRM); |
|
|
|
} else { |
|
|
|
return PageVo.empty(); |
|
|
|
projQuery.exists(ExistsSqlConst.PROJECT_EXISTS_STATUS_CHANGE |
|
|
|
+ " and npsc.event = {0}", ProjectStateChangeEvent.SUBMIT_PURCHASE_ORG_CONFIRM); |
|
|
|
} |
|
|
|
} |
|
|
|
Page<Purchase> page = purchaseService.page(req.page(), query); |
|
|
|
Page<Project> page = projectService.page(req.page(), projQuery); |
|
|
|
if (page.getTotal() == 0) { |
|
|
|
return PageVo.empty(); |
|
|
|
} |
|
|
|
List<Purchase> records = page.getRecords(); |
|
|
|
List<Long> projectIds = CollUtils.fieldList(records, Purchase::getProjectId); |
|
|
|
Wrapper<Project> projectQuery = Wrappers.lambdaQuery(Project.class) |
|
|
|
.select(Project::getId, Project::getProjectCode, Project::getProjectName, Project::getStatus, |
|
|
|
Project::getBuildOrgName, Project::getBuildOrgCode, Project::getUnitStrip, Project::getProjectYear) |
|
|
|
.in(Project::getId, projectIds); |
|
|
|
List<Project> projects = projectService.list(projectQuery); |
|
|
|
Map<Long, Project> projectMap = CollUtils.listToMap(projects, Project::getId); |
|
|
|
Map<Long, Contract> contractMap = contractService.listByProjectIds(projectIds); |
|
|
|
List<Long> finishOrgConfirmBidIds = new ArrayList<>(); |
|
|
|
if (req.getStatus() == null) { |
|
|
|
List<Long> bidIds = CollUtils.fieldList(records, Purchase::getId); |
|
|
|
Wrapper<PurchaseStatusChange> pscQuery = Wrappers.lambdaQuery(PurchaseStatusChange.class) |
|
|
|
.select(PurchaseStatusChange::getBidId) |
|
|
|
.eq(PurchaseStatusChange::getEvent, TenderStateChangeEvent.SUBMIT_PURCHASE_ORG_CONFIRM) |
|
|
|
.in(PurchaseStatusChange::getBidId, bidIds); |
|
|
|
List<PurchaseStatusChange> changes = purchaseStatusChangeService.list(pscQuery); |
|
|
|
changes.forEach(c -> finishOrgConfirmBidIds.add(c.getBidId())); |
|
|
|
} |
|
|
|
List<PurchaseAdaptionListVO> data = records.stream().map(w -> { |
|
|
|
PurchaseAdaptionListVO adaption = new PurchaseAdaptionListVO(); |
|
|
|
adaption.setBidId(w.getId()); |
|
|
|
if (finishOrgConfirmBidIds.contains(w.getId())) { |
|
|
|
adaption.setStatus(TenderMainStatus.ORG_CONFIRM_PASSED.getCode()); |
|
|
|
} else { |
|
|
|
adaption.setStatus(w.getStatus()); |
|
|
|
} |
|
|
|
adaption.setBizName(w.getBidName()); |
|
|
|
adaption.setProjectId(w.getProjectId()); |
|
|
|
Project project = projectMap.get(w.getProjectId()); |
|
|
|
adaption.setProjectYear(project.getProjectYear()); |
|
|
|
adaption.setProjectName(project.getProjectName()); |
|
|
|
adaption.setBuildOrg(project.getBuildOrgName()); |
|
|
|
adaption.setProjectStatus(project.getStatus()); |
|
|
|
adaption.setProjectCode(project.getProjectCode()); |
|
|
|
adaption.setUnitStripName(MhUnitStripEnum.getVal(project.getUnitStrip())); |
|
|
|
Contract contract = contractMap.get(w.getId()); |
|
|
|
if (contract != null) { |
|
|
|
adaption.setContractAmount(contract.getTotalAmount()); |
|
|
|
List<Project> pageData = page.getRecords(); |
|
|
|
List<Long> projectIds = CollUtils.fieldList(pageData, Project::getId); |
|
|
|
List<Purchase> purchases = purchaseService.listByProjectIds(projectIds); |
|
|
|
Map<Long, List<Purchase>> purchaseMap = CollUtils.group(purchases, Purchase::getProjectId); |
|
|
|
Map<Long, BigDecimal> contractAmountMap = contractService.listContractAmountByProjectIds(projectIds); |
|
|
|
List<ProjectLibListItemVO> retData = CollUtils.convert(pageData, w -> { |
|
|
|
ProjectLibListItemVO item = new ProjectLibListItemVO(); |
|
|
|
item.setId(w.getId()); |
|
|
|
item.setProjectName(w.getProjectName()); |
|
|
|
item.setProjectCode(w.getProjectCode()); |
|
|
|
item.setProjectYear(w.getProjectYear()); |
|
|
|
item.setBuildOrgName(w.getBuildOrgName()); |
|
|
|
item.setUnitStrip(w.getUnitStrip()); |
|
|
|
item.setStage(w.getStage()); |
|
|
|
item.setStatus(w.getStatus()); |
|
|
|
item.setProjectType(w.getProjectType()); |
|
|
|
item.setApprovedAmount(w.getApprovalAmount()); |
|
|
|
item.setReviewAmount(w.getReviewAmount()); |
|
|
|
item.setApprovalDate(w.getApprovalDate()); |
|
|
|
item.setCreateOn(w.getCreateOn()); |
|
|
|
List<Purchase> currPurchases = purchaseMap.get(w.getId()); |
|
|
|
if (currPurchases != null) { |
|
|
|
List<TenderListInfoVO> tenders = new ArrayList<>(); |
|
|
|
for (Purchase p : currPurchases) { |
|
|
|
TenderListInfoVO tender = new TenderListInfoVO(); |
|
|
|
tender.setBidName(p.getBidName()); |
|
|
|
tender.setBidId(p.getId()); |
|
|
|
tender.setBidType(p.getBidType()); |
|
|
|
ITenderStatus status = TenderMainStatus.getNoNull(p.getStatus()); |
|
|
|
tender.setBidStatus(status.getCode()); |
|
|
|
tender.setBidStatusName(status.getDesc()); |
|
|
|
tender.setConstructionAmount(contractAmountMap.get(p.getId())); |
|
|
|
tenders.add(tender); |
|
|
|
item.setTenders(tenders); |
|
|
|
} |
|
|
|
} |
|
|
|
return adaption; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
return PageVo.of(data, page.getTotal()); |
|
|
|
} |
|
|
|
|
|
|
|
private List<Long> filterProjectIdsForPurchase(PurchaseAdaptionListReq req) { |
|
|
|
LambdaQueryWrapper<Project> projQuery = Wrappers.lambdaQuery(Project.class) |
|
|
|
.select(Project::getId) |
|
|
|
.ne(Project::getStage, ProjectStatus.STOPPED.getCode()) |
|
|
|
.eq(Project::getNewest, Boolean.TRUE) |
|
|
|
.eq(req.getProjectYear() != null, Project::getProjectYear, req.getProjectYear()) |
|
|
|
.like(StrUtil.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) |
|
|
|
.like(StrUtil.isNotBlank(req.getBuildOrgName()), Project::getBuildOrgName, req.getBuildOrgName()); |
|
|
|
if (req.getBuildOrgCode() != null) { |
|
|
|
projQuery.in(Project::getBuildOrgCode, mhUnitCache.getViewChildIdsRecursion(req.getBuildOrgCode())); |
|
|
|
} |
|
|
|
List<Project> projects = projectService.list(projQuery); |
|
|
|
return CollUtils.fieldList(projects, Project::getId); |
|
|
|
return item; |
|
|
|
}); |
|
|
|
return PageVo.of(retData, page.getTotal()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public PageVo<PurchaseAdaptionListVO> adaptList(PurchaseAdaptionListReq req) { |
|
|
|
public PageVo<ProjectLibListItemVO> adaptList(PurchaseAdaptionListReq req) { |
|
|
|
return queryData(req); |
|
|
|
} |
|
|
|
|
|
|
|