| | |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | YwRoomStatusDataVO roomStatusDataVO = new YwRoomStatusDataVO(); |
| | | roomStatusDataVO.setFloorId(ywRoom.getFloor()); |
| | | roomStatusDataVO.setRoomId(ywRoom.getId()); |
| | | roomStatusDataVO.setRoomCode(ywRoom.getCode()); |
| | | roomStatusDataVO.setRoomCode(ywRoom.getRoomNum()); |
| | | roomStatusDataVO.setRoomRentArea(ywRoom.getRentArea()); |
| | | |
| | | List<YwContract> roomContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>() |
| | |
| | | .leftJoin(YwContractRoom.class,YwContractRoom::getContractId,YwContract::getId) |
| | | .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) |
| | | .eq(YwContract::getIsdeleted,Constants.ZERO) |
| | | .ge(YwContract::getStartDate, DateUtil.getCurrDateTime()) |
| | | .le(YwContract::getStartDate, DateUtil.getCurrDateTime()) |
| | | .ge(YwContract::getEndDate, DateUtil.getCurrDateTime()) |
| | | .eq(YwContractRoom::getType,Constants.ZERO) |
| | | .eq(YwContractRoom::getRoomId,ywRoom.getId()) |
| | | .ne(YwContract::getBillStatus,Constants.THREE) |
| | | .orderByDesc(YwContract::getStartDate) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){ |
| | |
| | | roomStatusDataVO.setOverData(ywContract.getBtDate()); |
| | | } |
| | | }else{ |
| | | if(Objects.nonNull(ywContract.getEndDate()) && DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getEndDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))<=90){ |
| | | System.out.println(DateUtil.daysBetweenDates(ywContract.getEndDate(),new Date())); |
| | | if(Objects.nonNull(ywContract.getEndDate()) |
| | | && |
| | | DateUtil.daysBetweenDates(ywContract.getEndDate(),new Date())<=90){ |
| | | roomStatusDataVO.setRoomStatus(Constants.TWO); |
| | | roomStatusDataVO.setOverData(ywContract.getEndDate()); |
| | | }else{ |
| | | roomStatusDataVO.setOverData(ywContract.getEndDate()); |
| | | } |
| | | } |
| | | }else{ |
| | | roomStatusDataVO.setRoomStatus(Constants.ZERO); |
| | | //已退租 计算退租时间 |
| | | if(Objects.nonNull(ywContract.getBtDate())){ |
| | | //查询退租日期和当前日期相差天数 |
| | | Integer btDays = DateUtil.daysBetweenDates(new Date(),ywContract.getBtDate()); |
| | | if(btDays>=Constants.ZERO){ |
| | | roomStatusDataVO.setFreeDayAmount(btDays); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | for (YwFloor ywFloor:ywFloorList) { |
| | | YwFloorStatusDataVO ywFloorStatusDataVO = new YwFloorStatusDataVO(); |
| | | ywFloorStatusDataVO.setFloor(ywFloor.getFloor()); |
| | | ywFloorStatusDataVO.setFloorName(ywFloor.getName()); |
| | | ywFloorStatusDataVO.setFloorId(ywFloor.getId()); |
| | | ywFloorStatusDataVO.setFloorArea(ywFloor.getArea()); |
| | | ywFloorStatusDataVO.setFloorArea(BigDecimal.ZERO); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(roomStatusDataList)){ |
| | | List<YwRoomStatusDataVO> floorRoomList = roomStatusDataList.stream().filter(i->Objects.nonNull(i.getFloorId())&&Constants.equalsInteger(i.getFloorId(),ywFloor.getId())).collect(Collectors.toList()); |
| | | ywFloorStatusDataVO.setYwRoomStatusDataVOList(floorRoomList); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(floorRoomList)){ |
| | | ywFloorStatusDataVO.setFloorArea(floorRoomList.stream().filter(i->Objects.nonNull(i.getRoomRentArea())).map(i->i.getRoomRentArea()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | } |
| | | } |
| | | ywFloorStatusDataVOList.add(ywFloorStatusDataVO); |
| | | } |
| | |
| | | ywRoomContractDataVO.setLeasePrice(BigDecimal.ZERO); |
| | | ywRoomContractDataVO.setLeaseArea(BigDecimal.ZERO); |
| | | ywRoomContractDataVO.setLeaseRoomAmount(Constants.ZERO); |
| | | ywRoomContractDataVO.setLeaseDayPrice(BigDecimal.ZERO); |
| | | |
| | | List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda() |
| | | .eq(YwRoom::getIsdeleted,Constants.ZERO) |
| | |
| | | List<YwContract> roomContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>() |
| | | .selectAll(YwContract.class) |
| | | .select(" ( select ifnull(sum(yr.RENT_AREA),0) from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and y.CONTRACT_ID = t.id ) " , YwContract::getTotalArea) |
| | | .select(" ( select ifnull(sum(y.TOTLE_FEE),0) from yw_contract_bill y where y.CONTRACT_ID = t.id and y.type = 0 ) " , YwContract::getTotalFee) |
| | | .select(" ( select ifnull(sum(y.TOTLE_FEE),0) from yw_contract_bill y where y.CONTRACT_ID = t.id and y.type = 0 and y.COST_TYPE=0 and y.BILL_TYPE = 0 ) " , YwContract::getTotalFee) |
| | | .eq(YwContract::getIsdeleted,Constants.ZERO) |
| | | .in(YwContract::getStatus,Constants.ONE,Constants.TWO,Constants.THREE) |
| | | .ne(YwContract::getBillStatus,Constants.THREE) |
| | | .apply(Objects.nonNull(model.getBuildingId()), |
| | | " t.id in ( select y.CONTRACT_ID from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and yr.BUILDING_ID = "+model.getBuildingId()+" ) ") |
| | | .apply(Objects.nonNull(model.getProjectId()), |
| | | " t.id in ( select y.CONTRACT_ID from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and yr.PROJECT_ID = "+model.getProjectId()+" ) ") |
| | | .apply(Objects.nonNull(model.getProjectId())," ") |
| | | .orderByDesc(YwContract::getStartDate) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){ |
| | |
| | | } |
| | | //处理租赁单价 根据 合同租赁总额 / (租赁时长 * 租赁面积) |
| | | for (YwContract ywContract:roomContractList) { |
| | | long contractDayAmount = DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getEndDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(ywContract.getStartDate(),"yyyy-MM-dd")); |
| | | long contractDayAmount = DateUtil.daysBetweenDates(ywContract.getEndDate() |
| | | ,ywContract.getStartDate()); |
| | | if(Objects.nonNull(contractDayAmount) && Objects.nonNull(ywContract.getTotalArea()) && Objects.nonNull(ywContract.getTotalFee())){ |
| | | ywRoomContractDataVO.setLeasePrice( |
| | | ywRoomContractDataVO.getLeasePrice().add( |
| | | ywRoomContractDataVO.setLeaseDayPrice( |
| | | ywRoomContractDataVO.getLeaseDayPrice().add( |
| | | ywContract.getTotalFee().divide((ywContract.getTotalArea().multiply(new BigDecimal(Long.toString(contractDayAmount)))),2,BigDecimal.ROUND_HALF_UP) |
| | | ) |
| | | ); |
| | | } |
| | | } |
| | | |
| | | ywRoomContractDataVO.setLeaseContractAmount(roomContractList.size()); |
| | | if(Objects.nonNull(ywRoomContractDataVO.getLeaseDayPrice())&&ywRoomContractDataVO.getLeaseDayPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | ywRoomContractDataVO.setLeasePrice( |
| | | ywRoomContractDataVO.getLeaseDayPrice().divide(new BigDecimal(Integer.toString(ywRoomContractDataVO.getLeaseContractAmount())),2,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | List<Integer> contractId = roomContractList.stream().map(i->i.getId()).collect(Collectors.toList()); |
| | | List<YwRoom> ywLeaseRoomList = ywRoomMapper.selectJoinList(YwRoom.class,new MPJLambdaWrapper<YwRoom>() |
| | | .selectAll(YwRoom.class) |