| | |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | |
| | | public class StateAssetServiceImpl |
| | | extends ServiceImpl<StateAssetMapper, StateAsset> |
| | | implements StateAssetService { |
| | | public class StateAssetServiceImpl extends ServiceImpl<StateAssetMapper, StateAsset> implements StateAssetService { |
| | | |
| | | |
| | | private final StateAgreementService agreementService; |
| | | |
| | | private final StateAssetMapper assetMapper; |
| | | |
| | | private final StateSettlementService settlementService; |
| | | |
| | | @Lazy |
| | | @Resource |
| | | private final StateProjectService stateProjectService; |
| | | |
| | | @Lazy |
| | | @Resource |
| | | private final StateHouseholdService stateHouseholdService; |
| | | |
| | | @Lazy |
| | | @Resource |
| | | private final StateProcessTemplateService stateProcessTemplateService; |
| | | |
| | | @Lazy |
| | | @Resource |
| | | private final StateHouseholdOwnerService stateHouseholdOwnerService; |
| | | |
| | | @Lazy |
| | | @Resource |
| | | private final ISysDeptService deptService; |
| | | |
| | | @Override |
| | | public PageInfo<StateAssetDetailVO> listAssetDetail(AssetDetailBO assetDetailBO) { |
| | | |
| | | |
| | | StateProject stateProject = stateProjectService.getById(assetDetailBO.getProjectId()); |
| | | |
| | | Integer currentStatus = stateProject.getStatus(); |
| | | |
| | | PageUtils.startPage(); |
| | |
| | | return new PageInfo<>(); |
| | | } |
| | | PageInfo<StateAssetDetailVO> stateAssetDetailVOPageInfo = new PageInfo<>(assetDetailVOList); |
| | | // //组装名字 |
| | | // List<String> houseIdList = assetDetailVOList.stream().map(StateAssetDetailVO::getHouseId).collect(Collectors.toList()); |
| | | // LambdaQueryWrapper<StateHouseholdOwner> householdOwnerLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | // householdOwnerLambdaQueryWrapper.in(StateHouseholdOwner::getStateHouseholdId, houseIdList); |
| | | // |
| | | // if (!StringUtils.isEmpty(assetDetailBO.getOwnerName())) { |
| | | // householdOwnerLambdaQueryWrapper.like(StateHouseholdOwner::getOwnerName, assetDetailBO.getOwnerName()); |
| | | // } |
| | | // List<StateHouseholdOwner> stateHouseholdOwners = stateHouseholdOwnerService.list(householdOwnerLambdaQueryWrapper); |
| | | |
| | | // Map<String, List<StateHouseholdOwner>> ownerMap = stateHouseholdOwners.stream().collect(Collectors.groupingBy(StateHouseholdOwner::getStateHouseholdId)); |
| | | // if (!StringUtils.isEmpty(assetDetailBO.getOwnerName())) { |
| | | // assetDetailVOList = assetDetailVOList.stream().filter(data -> ownerMap.containsKey(data.getHouseId())).collect(Collectors.toList()); |
| | | // } |
| | | stateAssetDetailVOPageInfo.setList(assetDetailVOList); |
| | | Map<String, List<StateAssetDetailVO>> listMap = stateAssetDetailVOPageInfo.getList().stream().collect(Collectors.groupingBy(StateAssetDetailVO::getHouseId)); |
| | | |
| | |
| | | for (String houseId : listMap.keySet()) { |
| | | List<StateAssetDetailVO> stateAssetDetailVOList = listMap.get(houseId); |
| | | StateAssetDetailVO assetDetailVO = stateAssetDetailVOList.get(0); |
| | | // //组装名字 |
| | | // if (ownerMap.containsKey(houseId)) { |
| | | // String fullName = ownerMap.get(houseId).stream().map(StateHouseholdOwner::getOwnerName).collect(Collectors.joining("|")); |
| | | // assetDetailVO.setOwnerName(fullName); |
| | | // assetDetailVO.setPersonNum(ownerMap.get(houseId).size()); |
| | | // } |
| | | result.add(assetDetailVO); |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | 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); |
| | | Number agreementMoney = Objects.nonNull(data.getAgreementMoney()) ? data.getAgreementMoney() : 0; |
| | | settleMoney = Objects.nonNull(data.getSettleMoney()) ? data.getSettleMoney() : BigDecimal.ZERO; |
| | | data.setDiffMoney(BigDecimal.valueOf(agreementMoney.doubleValue()).subtract(settleMoney)); |
| | | data.setPaidOffTime(Objects.nonNull(stateSettlement.getPaidTime()) ? stateSettlement.getPaidTime() : null); |
| | | |
| | | }); |
| | | |
| | | stateAssetDetailVOPageInfo.setList(result); |
| | |
| | | @Override |
| | | public JSONObject sumAsset(String projectId) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | |
| | | StateProject stateProject = stateProjectService.getProjectById(projectId); |
| | | |
| | | LambdaQueryWrapper<StateAsset> stateAssetQueryWrapper = new LambdaQueryWrapper<>(); |
| | | stateAssetQueryWrapper.eq(StateAsset::getStateProjectId, projectId); |
| | | List<StateAsset> stateAssets = this.list(stateAssetQueryWrapper); |
| | |
| | | .sum(); |
| | | String roundedBudgetAmount = BigDecimal.valueOf(budgetAmount) |
| | | .setScale(4, RoundingMode.HALF_UP).toPlainString(); |
| | | |
| | | jsonObject.put("budgetAmount", roundedBudgetAmount); |
| | | |
| | | //合同金额 |
| | | LambdaQueryWrapper<StateHousehold> stateHouseholdLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getStateProjectId, projectId); |
| | | // stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getAgreementStatus,SubmitStatusEnum.ACCEPT.getValue()); |
| | | stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getDelFlag, DeleteFlagEnum.NOT_DELETED.getKey()); |
| | | stateHouseholdLambdaQueryWrapper.isNotNull(StateHousehold::getAgreementStatus); |
| | | List<StateHousehold> stateHouseholds = stateHouseholdService.list(stateHouseholdLambdaQueryWrapper); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | stateAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber); |
| | | stateAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, houseIds); |
| | | List<StateAgreement> stateAgreements = agreementService.list(stateAgreementLambdaQueryWrapper); |
| | | if (CollectionUtils.isNotEmpty(stateAgreements)) { |
| | | |
| | | Integer projectStatus = stateProject.getStatus(); |
| | | if (Objects.equals(projectStatus, StateProjectStatusEnum.SIMULATE.getKey())) { |
| | | stateAgreementLambdaQueryWrapper.eq(StateAgreement::getAgreementFileType, AgreementTypeEnum.VIRTUAL_STATE_AGREEMENT.getValue()); |
| | |
| | | && 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); |
| | |
| | | stateSettlementLambdaQueryWrapper.in(StateSettlement::getStateHouseholdId, houseIds); |
| | | stateSettlementLambdaQueryWrapper.isNotNull(StateSettlement::getAuditStatus); |
| | | List<StateSettlement> stateSettlementList = settlementService.list(stateSettlementLambdaQueryWrapper); |
| | | |
| | | jsonObject.put("settlementMoney", 0); |
| | | if (CollectionUtils.isNotEmpty(stateSettlementList)) { |
| | | |
| | | |
| | | Double settlementMoney = stateSettlementList.stream() |
| | | .mapToDouble(stateSettlement -> { |
| | | Double settlementMoneyValue = stateSettlement.getSettlementMoney(); |
| | |
| | | // 四舍五入保留两位小数 |
| | | String roundedSettlementMoney = BigDecimal.valueOf(settlementMoney) |
| | | .setScale(4, RoundingMode.HALF_UP).toPlainString(); |
| | | |
| | | |
| | | jsonObject.put("settlementMoney", roundedSettlementMoney); |
| | | } |
| | | jsonObject.put("status", stateProject.getStatus()); |
| | | |
| | | return jsonObject; |
| | | } |
| | | |
| | |
| | | @Override |
| | | public boolean saveAsset(StateAssetBO asset) { |
| | | String deptId = SecurityUtils.getLoginUser().getUser().getDept().getDeptId(); |
| | | |
| | | Map<String, SysDept> stringSysDeptMap = deptService.selectMapDeptById(Collections.singletonList(deptId)); |
| | | |
| | | asset.setSubmittedBy(stringSysDeptMap.values().stream().map(SysDept::getDeptName).collect(Collectors.joining(","))); |
| | | |
| | | if (CollectionUtils.isNotEmpty(asset.getFileBOList())) { |