无关风月
2025-02-19 7eb0c385a3134a0e69860f68bb53caab4414fc2d
小程序登录
5个文件已修改
117 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TCheckAcceptRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/MyHouseVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java
@@ -22,6 +22,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -90,8 +91,9 @@
    @ApiOperation(value = "添加验收记录")
    @PostMapping(value = "/add")
    public R<Boolean> add(@Validated @RequestBody TCheckAcceptRecord dto) {
        dto.setAcceptanceTime(dto.getCheckTime());
        // 添加验收记录
        checkAcceptRecordService.updateById(dto);
        checkAcceptRecordService.save(dto);
        // TODO 生成结算帐单
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java
@@ -58,7 +58,8 @@
    private THouseService houseService;
    @Autowired
    private  TCheckAcceptRecordService checkAcceptRecordService;
    private TCheckAcceptRecordService checkAcceptRecordService;
    /**
     * 获取轮播图管理列表
     */
@@ -66,7 +67,9 @@
    @PostMapping(value = "/list")
    public R<List<TBanner>> list(@RequestBody TBannerQuery query) {
        return R.ok(bannerService.list(query));
    }    /**
    }
    /**
     * 获取轮播图管理列表
     */
    @ApiOperation(value = "租户-我的待办")
@@ -74,48 +77,50 @@
    public R<MyToDoVO> tenantMyToDo() {
        MyToDoVO myToDoVO = new MyToDoVO();
        LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
        if (loginUserApplet!=null){
        if (loginUserApplet != null) {
            long contractCount = contractService.count(new LambdaQueryWrapper<TContract>()
                    .eq(TContract::getStatus, 3).eq(TContract::getTenantId, loginUserApplet.getUserId()));
            myToDoVO.setContractCount((int) contractCount);
            List<String> contractIds = contractService.lambdaQuery().eq(TContract::getTenantId, loginUserApplet.getUserId()).list()
                    .stream().map(TContract::getId).collect(Collectors.toList());
            if (CollectionUtils.isEmpty(contractIds)){
            if (CollectionUtils.isEmpty(contractIds)) {
                myToDoVO.setBillCount(0);
                myToDoVO.setContractCount(0);
                return R.ok(myToDoVO);
            }
            int billCount = billService.lambdaQuery().in(TBill::getContractId, contractIds).eq(TBill::getPayFeesStatus, 1).list().size();
            myToDoVO.setBillCount(billCount);
        }else {
        } else {
            myToDoVO.setBillCount(0);
            myToDoVO.setContractCount(0);
        }
        return R.ok(myToDoVO);
    }
    @ApiOperation(value = "租户-当前在租房源")
    @PostMapping(value = "/tenant/myHouse")
    public R<List<MyHouseVO>> myHouse() {
        List<MyHouseVO> myHouseVOS = new ArrayList<>();
        LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
        if (loginUserApplet!=null){
        if (loginUserApplet != null) {
            List<TContract> contractList = contractService.lambdaQuery().eq(TContract::getTenantId, loginUserApplet.getUserId())
                    .eq(TContract::getStatus, 4).list();
            List<THouse> houseList = houseService.list();
            List<TBill> bills = billService.lambdaQuery().orderByDesc(TBill::getPayableFeesTime).list();
            for (TContract contract : contractList) {
                THouse tHouse = houseList.stream().filter(e -> e.getId().equals(contract.getHouseId())).findFirst().orElse(null);
                TBill bill = bills.stream().filter(e -> e.getContractId().equals(contract.getId())&&e.getPayFeesStatus().equals("3")).findFirst().orElse(null);
                if (bill==null){
                TBill bill = bills.stream().filter(e -> e.getContractId().equals(contract.getId()) && e.getPayFeesStatus().equals("3")).findFirst().orElse(null);
                if (bill == null) {
                    bill = bills.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null);
                }
                if (tHouse!=null&& bill!=null){
                if (tHouse != null && bill != null) {
                    MyHouseVO myToDoVO = new MyHouseVO();
                    myToDoVO.setId(contract.getId());
                    myToDoVO.setHouseAddress(tHouse.getHouseAddress());
                    myToDoVO.setMonthRent(contract.getMonthRent());
                    myToDoVO.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,contract.getPayType()));
                    myToDoVO.setMonth(bill.getPayFeesTime()==null?bill.getPayableFeesTime().getMonth()+"月":bill.getPayFeesTime().getMonth()+"月");
                    myToDoVO.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE, contract.getPayType()));
                    myToDoVO.setMonth(bill.getPayFeesTime() == null ? bill.getPayableFeesTime().getMonth() + "月" : bill.getPayFeesTime().getMonth() + "月");
                    myToDoVO.setHouseArea(tHouse.getHouseArea());
                    myToDoVO.setHouseType(tHouse.getHouseType());
                    myToDoVO.setEndTime(DateUtils.localDateTimeToStringYear(contract.getEndTime()));
@@ -127,7 +132,7 @@
                    for (TBill tBill : billList) {
                        PayListVO payListVO = new PayListVO();
                        payListVO.setPayFeesTime(DateUtils.localDateTimeToStringYear(tBill.getPayFeesTime()));
                        payListVO.setPayFeesMoney("-"+tBill.getPayFeesMoney()+"元");
                        payListVO.setPayFeesMoney("-" + tBill.getPayFeesMoney() + "元");
                        payList.add(payListVO);
                    }
                    myToDoVO.setPayList(payList);
@@ -136,16 +141,60 @@
            }
            return R.ok(myHouseVOS);
        }else {
        } else {
            return R.ok(myHouseVOS);
        }
    }
    @ApiOperation(value = "租户-当前在租房源-租赁详情")
    @GetMapping(value = "/tenant/myHouseDetail")
    public R<MyHouseVO> myHouseDetail(String id) {
        LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
        if (loginUserApplet != null) {
            MyHouseVO myToDoVO = new MyHouseVO();
            TContract contract = contractService.getById(id);
            List<TBill> bills = billService.lambdaQuery().orderByDesc(TBill::getPayableFeesTime).list();
            THouse tHouse = houseService.getById(contract.getHouseId());
            TBill bill = bills.stream().filter(e -> e.getContractId().equals(contract.getId()) && e.getPayFeesStatus().equals("3")).findFirst().orElse(null);
            if (bill == null) {
                bill = bills.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null);
            }
            if (tHouse != null && bill != null) {
                myToDoVO.setId(contract.getId());
                myToDoVO.setHouseAddress(tHouse.getHouseAddress());
                myToDoVO.setMonthRent(contract.getMonthRent());
                myToDoVO.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE, contract.getPayType()));
                myToDoVO.setMonth(bill.getPayFeesTime() == null ? bill.getPayableFeesTime().getMonth() + "月" : bill.getPayFeesTime().getMonth() + "月");
                myToDoVO.setHouseArea(tHouse.getHouseArea());
                myToDoVO.setHouseType(tHouse.getHouseType());
                myToDoVO.setEndTime(DateUtils.localDateTimeToStringYear(contract.getEndTime()));
                myToDoVO.setStartTime(DateUtils.localDateTimeToStringYear(contract.getStartTime()));
                myToDoVO.setPropertyRightPerson(tHouse.getPropertyRightPerson());
                myToDoVO.setPhone(tHouse.getPhone());
                List<TBill> billList = bills.stream().filter(e -> e.getContractId().equals(contract.getId())).collect(Collectors.toList());
                List<PayListVO> payList = new ArrayList<>();
                for (TBill tBill : billList) {
                    PayListVO payListVO = new PayListVO();
                    payListVO.setPayFeesTime(DateUtils.localDateTimeToStringYear(tBill.getPayFeesTime()));
                    payListVO.setPayFeesMoney("-" + tBill.getPayFeesMoney() + "元");
                    payList.add(payListVO);
                }
                myToDoVO.setPayList(payList);
            }
            return R.ok(myToDoVO);
        } else {
            return R.ok(new MyHouseVO());
        }
    }
    @ApiOperation(value = "管理员-我的待办")
    @PostMapping(value = "/admin/myToDo")
    public R<MyToDoVO> adminMyToDo() {
        MyToDoVO myToDoVO = new MyToDoVO();
        LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
        if (loginUserApplet!=null){
        if (loginUserApplet != null) {
            long examineCount = contractService.count(new LambdaQueryWrapper<TContract>()
                    .eq(TContract::getStatus, 2));
            myToDoVO.setExamineCount((int) examineCount);
@@ -154,7 +203,7 @@
            int overdueCount = contractService.lambdaQuery().in(TContract::getId, contractIds).list()
                    .stream().map(TContract::getTenantId).distinct().collect(Collectors.toList()).size();
            myToDoVO.setOverdueCount(overdueCount);
        }else {
        } else {
            myToDoVO.setExamineCount(0);
            myToDoVO.setOverdueCount(0);
        }
@@ -169,6 +218,7 @@
    public R<PageInfo<TCheckAcceptRecordVO>> houseCheck(@RequestBody TCheckAcceptRecordAppletQuery query) {
        return R.ok(checkAcceptRecordService.pageListApplet(query));
    }
    /**
     * 查看验收记录详情
     */
@@ -176,10 +226,10 @@
    @GetMapping(value = "/getDetailById")
    public R<TCheckAcceptRecordVO> getDetailById(@RequestParam String id) {
        TCheckAcceptRecord checkAcceptRecord = checkAcceptRecordService.getById(id);
        checkAcceptRecord.setCleanSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getCleanSituation()));
        checkAcceptRecord.setOverallSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getOverallSituation()));
        checkAcceptRecord.setDeviceSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getDeviceSituation()));
        checkAcceptRecord.setFurnitureSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getFurnitureSituation()));
        checkAcceptRecord.setCleanSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION, checkAcceptRecord.getCleanSituation()));
        checkAcceptRecord.setOverallSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION, checkAcceptRecord.getOverallSituation()));
        checkAcceptRecord.setDeviceSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION, checkAcceptRecord.getDeviceSituation()));
        checkAcceptRecord.setFurnitureSituation(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION, checkAcceptRecord.getFurnitureSituation()));
        TCheckAcceptRecordVO checkAcceptRecordVO = new TCheckAcceptRecordVO();
        BeanUtils.copyProperties(checkAcceptRecord, checkAcceptRecordVO);
        // 查询合同信息
@@ -188,6 +238,7 @@
        checkAcceptRecordVO.setHouse(houseService.getById(checkAcceptRecord.getHouseId()));
        return R.ok(checkAcceptRecordVO);
    }
    @ApiOperation(value = "管理员-新增验收")
    @GetMapping(value = "/addRecord")
    public R<TCheckAcceptRecordVO> getDetailById(@Validated @RequestBody TCheckAcceptRecord dto) {
ruoyi-system/src/main/java/com/ruoyi/system/model/TCheckAcceptRecord.java
@@ -47,6 +47,10 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("check_time")
    private LocalDateTime checkTime;
    @ApiModelProperty(value = "应验收日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("acceptance_time")
    private LocalDateTime acceptanceTime;
    @ApiModelProperty(value = "退租原因")
    @TableField("lease_reason")
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java
@@ -104,8 +104,16 @@
        TCheckAcceptRecord tCheckAcceptRecord = new TCheckAcceptRecord();
        tCheckAcceptRecord.setContractId(dto.getId());
        tCheckAcceptRecord.setHouseId(contract.getHouseId());
        tCheckAcceptRecord.setLeaseReason("后台终止");
        tCheckAcceptRecord.setLeaseReason("后台终止合同");
        tCheckAcceptRecord.setStatus("1");
        tCheckAcceptRecord.setAcceptanceTime(LocalDateTime.now());
        LocalDate now = LocalDate.now();
        String replace = (now + "").replace("-", "");
        int size = checkAcceptRecordMapper.selectList(new LambdaQueryWrapper<TCheckAcceptRecord>()
                .likeRight(TCheckAcceptRecord::getAcceptanceTime, LocalDate.now())).size();
        tCheckAcceptRecord.setCode(replace.substring(2)+String.format("%03d", size+1));
        checkAcceptRecordMapper.insert(tCheckAcceptRecord);
        // 将所有未缴费账单设置未已失效
        List<TBill> tBills = billMapper.selectList(new LambdaQueryWrapper<TBill>()
@@ -117,7 +125,13 @@
        billService.updateBatchById(tBills);
    }
    public static void main(String[] args) {
//        LocalDate now = LocalDate.now();
//        String replace = (now + "").replace("-", "");
//        System.err.println(replace.substring(2));
//
//        System.err.println(String.format("%03d",1));
    }
    @Override
    public CheckAcceptRecordVO getCheckByContractId(String id) {
        CheckAcceptRecordVO checkAcceptRecordVO = new CheckAcceptRecordVO();
ruoyi-system/src/main/java/com/ruoyi/system/vo/MyHouseVO.java
@@ -13,6 +13,8 @@
@Data
@ApiModel(value = "我的在租VO")
public class MyHouseVO {
    @ApiModelProperty(value = "合同id")
    private String id;
    @ApiModelProperty(value = "地址")
    private String houseAddress;
    @ApiModelProperty(value = "月付租金")