yanghb
2025-01-07 fb9ce21457f9a3326b8253e095319db7fa961007
land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java
@@ -38,43 +38,28 @@
@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();
@@ -83,20 +68,6 @@
            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));
@@ -105,12 +76,6 @@
        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);
        }
@@ -152,23 +117,18 @@
        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);
@@ -178,9 +138,7 @@
    @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);
@@ -191,13 +149,10 @@
                .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);
@@ -221,12 +176,10 @@
            }
        }
        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());
@@ -251,8 +204,6 @@
                && 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);
@@ -271,11 +222,8 @@
        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();
@@ -295,12 +243,9 @@
            // 四舍五入保留两位小数
            String roundedSettlementMoney = BigDecimal.valueOf(settlementMoney)
                    .setScale(4, RoundingMode.HALF_UP).toPlainString();
            jsonObject.put("settlementMoney", roundedSettlementMoney);
        }
        jsonObject.put("status", stateProject.getStatus());
        return jsonObject;
    }
@@ -308,9 +253,7 @@
    @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())) {