From 1fc203f758ace853f4bfa900c422c2f741d09e79 Mon Sep 17 00:00:00 2001 From: yanghb <yangbhwork@163.com> Date: 星期二, 18 二月 2025 09:05:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java | 67 +++++++++++++++++++++++++++++---- 1 files changed, 58 insertions(+), 9 deletions(-) diff --git a/land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java b/land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java index c92d547..4987698 100644 --- a/land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java +++ b/land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java @@ -8,20 +8,33 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageInfo; -import com.zzg.common.core.domain.entity.state.*; +import com.zzg.common.core.domain.entity.state.StateAgreement; +import com.zzg.common.core.domain.entity.state.StateAsset; +import com.zzg.common.core.domain.entity.state.StateHousehold; +import com.zzg.common.core.domain.entity.state.StateProject; +import com.zzg.common.core.domain.entity.state.StateSettlement; import com.zzg.common.core.domain.entity.system.SysDept; -import com.zzg.common.enums.*; +import com.zzg.common.enums.AgreementTypeEnum; +import com.zzg.common.enums.CompensationCategoryEnum; +import com.zzg.common.enums.DeleteFlagEnum; +import com.zzg.common.enums.ProcessCategoryEnum; +import com.zzg.common.enums.StateProjectStatusEnum; +import com.zzg.common.enums.SubmitStatusEnum; import com.zzg.common.exception.GlobalException; import com.zzg.common.utils.PageUtils; import com.zzg.common.utils.SecurityUtils; -import com.zzg.common.utils.StringUtils; import com.zzg.system.domain.bo.AssetDetailBO; import com.zzg.system.domain.bo.FileBO; import com.zzg.system.domain.bo.ProcessStartBO; import com.zzg.system.domain.bo.StateAssetBO; import com.zzg.system.domain.vo.StateAssetDetailVO; import com.zzg.system.mapper.state.StateAssetMapper; -import com.zzg.system.service.state.*; +import com.zzg.system.service.state.StateAgreementService; +import com.zzg.system.service.state.StateAssetService; +import com.zzg.system.service.state.StateHouseholdService; +import com.zzg.system.service.state.StateProcessTemplateService; +import com.zzg.system.service.state.StateProjectService; +import com.zzg.system.service.state.StateSettlementService; import com.zzg.system.service.system.ISysDeptService; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; @@ -31,7 +44,12 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -57,12 +75,19 @@ @Resource private final ISysDeptService deptService; + /** + * 项目资金点击上方符号查询 + * @param assetDetailBO + * @return + */ @Override public PageInfo<StateAssetDetailVO> listAssetDetail(AssetDetailBO assetDetailBO) { + //查询项目信息 StateProject stateProject = stateProjectService.getById(assetDetailBO.getProjectId()); Integer currentStatus = stateProject.getStatus(); PageUtils.startPage(); + //查询项目预算资金详情 List<StateAssetDetailVO> assetDetailVOList = assetMapper.listAssetDetail(assetDetailBO, currentStatus); if (CollectionUtils.isEmpty(assetDetailVOList)) { return new PageInfo<>(); @@ -78,7 +103,7 @@ StateAssetDetailVO assetDetailVO = stateAssetDetailVOList.get(0); result.add(assetDetailVO); } - + //国有项目协议查询条件 LambdaQueryWrapper<StateAgreement> stateAgreementLambdaQueryWrapper = new LambdaQueryWrapper<>(); stateAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, result.stream().map(StateAssetDetailVO::getHouseId).collect(Collectors.toList())); //根据项目状态查询协议 这一个项目状态只有一种 随便取出来即可 @@ -92,6 +117,7 @@ } } stateAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber); + //查询协议列表 List<StateAgreement> stateAgreements = agreementService.list(stateAgreementLambdaQueryWrapper); if (CollectionUtils.isEmpty(stateAgreements)) { stateAssetDetailVOPageInfo.setList(result); @@ -111,17 +137,22 @@ LambdaQueryWrapper<StateSettlement> stateSettlementLambdaQueryWrapper = new LambdaQueryWrapper<>(); stateSettlementLambdaQueryWrapper.in(StateSettlement::getStateHouseholdId, result.stream().map(StateAssetDetailVO::getHouseId).collect(Collectors.toList())); + //查询已结算金额 List<StateSettlement> stateSettlementList = settlementService.list(stateSettlementLambdaQueryWrapper); Map<String, StateSettlement> stateSettlementMap = stateSettlementList.stream() .collect(Collectors.toMap(StateSettlement::getStateHouseholdId, Function.identity())); + //赋值结算金额 result.forEach(data -> { StateSettlement stateSettlement = stateSettlementMap.get(data.getHouseId()); if (Objects.isNull(stateSettlement)) { return; } + //TODO 置换后金额含义 + // 结算金额 Double dbSettleMoney = Objects.nonNull(stateSettlement.getSettlementMoney()) ? stateSettlement.getSettlementMoney() : 0; + //置换后金额 Double dbExchangeMoney = Objects.nonNull(stateSettlement.getExchangeMoney()) ? stateSettlement.getExchangeMoney() : 0; BigDecimal settleMoney = BigDecimal.valueOf(dbSettleMoney + dbExchangeMoney).setScale(4, RoundingMode.HALF_UP); data.setSettleMoney(settleMoney); @@ -135,12 +166,20 @@ return stateAssetDetailVOPageInfo; } + /** + * 项目资金 上方统计数据 + * @param projectId + * @return + */ @Override public JSONObject sumAsset(String projectId) { JSONObject jsonObject = new JSONObject(); + //查询项目信息 StateProject stateProject = stateProjectService.getProjectById(projectId); + // TODO 未将逻辑删除的字段过滤 LambdaQueryWrapper<StateAsset> stateAssetQueryWrapper = new LambdaQueryWrapper<>(); stateAssetQueryWrapper.eq(StateAsset::getStateProjectId, projectId); + //查询项目预算资金 List<StateAsset> stateAssets = this.list(stateAssetQueryWrapper); //预算金额 @@ -155,6 +194,7 @@ stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getStateProjectId, projectId); stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getDelFlag, DeleteFlagEnum.NOT_DELETED.getKey()); stateHouseholdLambdaQueryWrapper.isNotNull(StateHousehold::getAgreementStatus); + //根据项目id查询房产数据 List<StateHousehold> stateHouseholds = stateHouseholdService.list(stateHouseholdLambdaQueryWrapper); if (CollectionUtils.isEmpty(stateHouseholds)) { @@ -178,6 +218,7 @@ stateAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber); stateAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, houseIds); + //查询协议信息 List<StateAgreement> stateAgreements = agreementService.list(stateAgreementLambdaQueryWrapper); if (CollectionUtils.isNotEmpty(stateAgreements)) { Integer projectStatus = stateProject.getStatus(); @@ -189,7 +230,7 @@ stateAgreementLambdaQueryWrapper.eq(StateAgreement::getAgreementFileType, AgreementTypeEnum.STATE_AGREEMENT.getValue()); stateAgreements = stateAgreements.stream().filter(e -> e.getAgreementFileType().equals(AgreementTypeEnum.STATE_AGREEMENT.getValue())).collect(Collectors.toList()); } - + // 协议金额 double agreementMoney = stateAgreements.stream() .filter(Objects::nonNull) .filter(data -> Objects.nonNull(data.getMoney())).mapToDouble(StateAgreement::getMoney).sum(); @@ -199,14 +240,15 @@ jsonObject.put("agreementMoney", agreementMoneyBig); } - + //将该项目下面的房产数据类型为产权置换的房产id筛选出来 List<String> componseTypeHouseIds = stateHouseholds.stream().filter(data -> ObjectUtil.isNotEmpty(data.getCompensationType()) && data.getCompensationType().equals(CompensationCategoryEnum.PROPERTY_SWAP_2.getCode())).map(StateHousehold::getId).collect(Collectors.toList()); - + //产权置换下的合金额 BigDecimal roundedAgreementMoney = BigDecimal.ZERO; if (ObjectUtil.isNotEmpty(componseTypeHouseIds)) { componseTypeAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber); componseTypeAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, componseTypeHouseIds); + //根据房产id查询协议列表 List<StateAgreement> stateAgreementsInDb = agreementService.list(componseTypeAgreementLambdaQueryWrapper); if (CollectionUtils.isNotEmpty(stateAgreementsInDb)) { double agreementMoney = stateAgreementsInDb.stream() @@ -249,10 +291,16 @@ return jsonObject; } + /** + * 新增和修改 项目资金 + * @param asset + * @return + */ @Transactional @Override public boolean saveAsset(StateAssetBO asset) { String deptId = SecurityUtils.getLoginUser().getUser().getDept().getDeptId(); + //根据当前登录人部门id查询部门信息 Map<String, SysDept> stringSysDeptMap = deptService.selectMapDeptById(Collections.singletonList(deptId)); asset.setSubmittedBy(stringSysDeptMap.values().stream().map(SysDept::getDeptName).collect(Collectors.joining(","))); @@ -288,6 +336,7 @@ variable.put("projectId", asset.getStateProjectId()); variable.put("street", asset.getStreet()); processStartBO.setVariable(variable); + //启动工作流 stateProcessTemplateService.start(processStartBO); return result; } -- Gitblit v1.7.1