From 099ea14bba367fd86f0dde37d908f07cc04c3d39 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 10 四月 2025 15:38:01 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/xizang --- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java | 191 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 164 insertions(+), 27 deletions(-) diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java index 134e0ab..6e8189f 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java @@ -2,36 +2,76 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.constant.DictConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUserApplet; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.dto.TBillDto; -import com.ruoyi.system.dto.TInvoiceDTO; -import com.ruoyi.system.model.*; -import com.ruoyi.system.query.*; -import com.ruoyi.system.service.*; -import com.ruoyi.system.vo.*; +import com.ruoyi.system.bo.ProcessTaskListBO; +import com.ruoyi.system.model.TBanner; +import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TCheckAcceptRecord; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.TContractRentType; +import com.ruoyi.system.model.TFaultRepairMessage; +import com.ruoyi.system.model.THouse; +import com.ruoyi.system.model.TTenant; +import com.ruoyi.system.query.TBannerQuery; +import com.ruoyi.system.query.TBillAppletQuery; +import com.ruoyi.system.query.TCheckAcceptRecordAppletQuery; +import com.ruoyi.system.query.TExamineAppletQuery; +import com.ruoyi.system.query.TFaultRepairMessageAppletQuery; +import com.ruoyi.system.query.TTenantAppletQuery; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.StateProcessTemplateService; +import com.ruoyi.system.service.TBannerService; +import com.ruoyi.system.service.TBillService; +import com.ruoyi.system.service.TCheckAcceptRecordService; +import com.ruoyi.system.service.TContractRentTypeService; +import com.ruoyi.system.service.TContractService; +import com.ruoyi.system.service.TFaultRepairMessageService; +import com.ruoyi.system.service.THouseService; +import com.ruoyi.system.service.TTenantService; +import com.ruoyi.system.vo.ExamineVO; +import com.ruoyi.system.vo.MyHouseVO; +import com.ruoyi.system.vo.MyToDoVO; +import com.ruoyi.system.vo.PayListVO; +import com.ruoyi.system.vo.ProcessTaskListVO; +import com.ruoyi.system.vo.TBillVO; +import com.ruoyi.system.vo.TCheckAcceptRecordVO; +import com.ruoyi.system.vo.TContractVO; +import com.ruoyi.system.vo.TFaultRepairMessageVO; +import com.ruoyi.system.vo.TenantVO; +import com.ruoyi.web.controller.tool.MyFileUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import jdk.nashorn.internal.parser.Token; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -63,6 +103,17 @@ private TCheckAcceptRecordService checkAcceptRecordService; @Autowired private TTenantService tenantService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private TContractRentTypeService contractRentTypeService; + @Autowired + private StateProcessTemplateService processTemplateService; + + public static void main(String[] args) throws IOException { + File file = new File("D:\\wechatFiles\\WeChat Files\\wxid_25nztsudcon722\\FileStorage\\File\\2025-03\\2.mp3"); + MultipartFile multipartFile = MyFileUtil.fileToMultipartFile(file, "3333"); + } /** * 获取轮播图管理列表 */ @@ -100,6 +151,8 @@ return R.ok(myToDoVO); } + + @ApiOperation(value = "租户-当前在租房源") @PostMapping(value = "/tenant/myHouse") public R<List<MyHouseVO>> myHouse() { @@ -123,7 +176,7 @@ 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.setMonth(bill.getPayFeesTime() == null ? bill.getPayableFeesTime().getMonth().getValue() + "月" : bill.getPayFeesTime().getMonth().getValue() + "月"); myToDoVO.setHouseArea(tHouse.getHouseArea()); myToDoVO.setHouseType(tHouse.getHouseType()); myToDoVO.setEndTime(DateUtils.localDateTimeToStringYear(contract.getEndTime())); @@ -171,13 +224,14 @@ 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.setMonth(bill.getPayFeesTime() == null ? bill.getPayableFeesTime().getMonth().getValue() + "月" : bill.getPayFeesTime().getMonth().getValue() + "月"); 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()); + myToDoVO.setRentalReturnStatus(tHouse.getRentalReturnStatus() == null ? "1" : tHouse.getRentalReturnStatus()); List<TBill> billList = bills.stream().filter(e -> e.getContractId().equals(contract.getId())).collect(Collectors.toList()); List<PayListVO> payList = new ArrayList<>(); for (TBill tBill : billList) { @@ -202,16 +256,24 @@ @PostMapping(value = "/admin/myToDo") public R<MyToDoVO> adminMyToDo() { MyToDoVO myToDoVO = new MyToDoVO(); - LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet(); - if (loginUserApplet != null) { - long examineCount = contractService.count(new LambdaQueryWrapper<TContract>() - .eq(TContract::getStatus, 2)); - myToDoVO.setExamineCount((int) examineCount); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser != null) { +// long examineCount = contractService.count(new LambdaQueryWrapper<TContract>() +// .eq(TContract::getStatus, 2)); + ProcessTaskListBO processTaskListBO = new ProcessTaskListBO(); + PageInfo<ProcessTaskListVO> processTaskListVOPageInfo = processTemplateService.waitTaskPage(processTaskListBO); + myToDoVO.setExamineCount((int) processTaskListVOPageInfo.getTotal()); List<String> contractIds = billService.lambdaQuery().eq(TBill::getPayFeesStatus, 4).list() .stream().map(TBill::getContractId).collect(Collectors.toList()); - int overdueCount = contractService.lambdaQuery().in(TContract::getId, contractIds).list() - .stream().map(TContract::getTenantId).distinct().collect(Collectors.toList()).size(); - myToDoVO.setOverdueCount(overdueCount); + if(contractIds.isEmpty()){ + myToDoVO.setOverdueCount(0); + + }else{ + int overdueCount = contractService.lambdaQuery().in(TContract::getId, contractIds).list() + .stream().map(TContract::getTenantId).distinct().collect(Collectors.toList()).size(); + myToDoVO.setOverdueCount(overdueCount); + } + } else { myToDoVO.setExamineCount(0); myToDoVO.setOverdueCount(0); @@ -225,6 +287,8 @@ @ApiOperation(value = "管理员-房屋验收单列表") @PostMapping(value = "/admin/houseCheck") public R<PageInfo<TCheckAcceptRecordVO>> houseCheck(@RequestBody TCheckAcceptRecordAppletQuery query) { + LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet(); + query.setSysUserId(loginUserApplet.getUserId()); return R.ok(checkAcceptRecordService.pageListApplet(query)); } @@ -235,10 +299,11 @@ @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(checkAcceptRecord.getCleanSituation()); +// checkAcceptRecord.setOverallSituation(StringUtils.hasLength(checkAcceptRecord.getOverallSituation())?(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getOverallSituation())):""); +// checkAcceptRecord.setDeviceSituation(StringUtils.hasLength(checkAcceptRecord.getDeviceSituation())?(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getDeviceSituation())):""); +// checkAcceptRecord.setFurnitureSituation(StringUtils.hasLength(checkAcceptRecord.getDeviceSituation())?(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CHECK_SITUATION,checkAcceptRecord.getFurnitureSituation())):""); + TCheckAcceptRecordVO checkAcceptRecordVO = new TCheckAcceptRecordVO(); BeanUtils.copyProperties(checkAcceptRecord, checkAcceptRecordVO); // 查询合同信息 @@ -258,15 +323,31 @@ int size = checkAcceptRecordService.list(new LambdaQueryWrapper<TCheckAcceptRecord>() .likeRight(TCheckAcceptRecord::getAcceptanceTime, LocalDate.now())).size(); dto.setCode(replace.substring(2)+String.format("%03d", size+1)); + dto.setStatus(true); // 添加验收记录 + dto.setCheckPerson(tokenService.getLoginUser().getUser().getNickName()); checkAcceptRecordService.updateById(dto); + TCheckAcceptRecord checkAcceptRecord = checkAcceptRecordService.getById(dto.getId()); + TContract contract = contractService.getById(checkAcceptRecord.getContractId()); + // 添加账单 + TBill tBill = new TBill(); + tBill.setContractId(checkAcceptRecord.getContractId()); + tBill.setContractNumber(contract.getContractNumber()); + tBill.setPayableFeesMoney(dto.getCheckMoney()); + tBill.setPayableFeesTime(LocalDate.now()); + tBill.setPayFeesStatus("1"); + tBill.setBillType("4"); + tBill.setOverDays(0); + tBill.setBusinessDeptId(contract.getBusinessDeptId()); + tBill.setOutstandingMoney(dto.getCheckMoney()); + billService.save(tBill); return R.ok(); } /** * 获取报修管理列表 */ @ApiOperation(value = "管理员-房屋维修分页列表") - @PostMapping(value = "/houstPageList") + @PostMapping(value = "/housePageList") public R<PageInfo<TFaultRepairMessageVO>> pageList(@RequestBody TFaultRepairMessageAppletQuery query) { return R.ok(tFaultRepairMessageService.pageListApplet(query)); } @@ -298,6 +379,14 @@ @PostMapping(value = "/pageList") public R<PageInfo<TenantVO>> pageList(@RequestBody TTenantAppletQuery query) { return R.ok(tenantService.pageListApplet(query)); + } + /** + * 获取租户管理列表 + */ + @ApiOperation(value = "获取租户详情") + @GetMapping(value = "/getTenantDetailById") + public R<TTenant> getTenantDetailById(@RequestParam String id) { + return R.ok(tenantService.getById(id)); } /** * 租户详情-租房信息 @@ -332,13 +421,61 @@ TContract contract = contractService.getById(bill.getContractId()); THouse tHouse = houseService.getById(contract.getHouseId()); res.setHouse(tHouse); + res.setConcatStartTime(contract.getStartTime()); + res.setConcatEndTime(contract.getEndTime()); + res.setPartyOnePhone(contract.getPartyOnePhone()); + res.setPartyOnePerson(contract.getPartyTwoPerson()); + res.setMonthRent(bill.getPayableFeesMoney()); + res.setPayType(contract.getPayType()); return R.ok(res); } @ApiOperation(value = "管理员-我的审批分页列表") @PostMapping("/listExamine") - public R examineList(@RequestBody TExamineAppletQuery dto){ + public R<PageInfo<ExamineVO>> examineList(@RequestBody TExamineAppletQuery dto){ + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.fail(401,"登录失效"); + } + SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId()); + dto.setUserName(sysUser.getUserName()); + PageInfo<ExamineVO> pageInfo = tenantService.examineList(dto); + return R.ok(pageInfo); + } + @ApiOperation(value = "管理员-审批详情") + @GetMapping("/examineDetail") + public R<TContractVO> examineDetail(@RequestParam String id){ + TContractVO res = new TContractVO(); + TContract contract = contractService.getById(id); + BeanUtils.copyProperties(contract,res); + res.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,res.getPayType())); + res.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,res.getStatus())); + TContractRentType contractRentType = contractRentTypeService.lambdaQuery().eq(TContractRentType::getContractId, id).one(); + if (contractRentType!=null){ + BeanUtils.copyProperties(contractRentType,res); + } + TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>() + .eq(TContract::getHouseId,contract.getHouseId()) + .eq(TContract::getStatus, 4) + .le(TContract::getStartTime, LocalDateTime.now()) + .ge(TContract::getEndTime, LocalDateTime.now())); + THouse house = houseService.getById(contract.getHouseId()); + if (oldContract!=null){ + house.setTenantType(oldContract.getPayType()); + } + res.setHouse(house); + List<TBill> list = billService.lambdaQuery() + .eq(TBill::getContractId, id) + .in(TBill::getPayFeesStatus, Arrays.asList("1,4")) + .list(); + BigDecimal payMoney = new BigDecimal("0"); + for (TBill tBill : list) { + payMoney = payMoney.add(tBill.getPayFeesMoney()).add(tBill.getPayableFeesPenalty()); + } + TCheckAcceptRecord tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery().eq(TCheckAcceptRecord::getContractId, id).one(); + res.setCheckResult(Objects.nonNull(tCheckAcceptRecord)?tCheckAcceptRecord.getCheckResult():false); + res.setPayMoney(payMoney); - return R.ok(); + return R.ok(res); } @ApiOperation(value = "管理员-我的审批-撤销") @GetMapping("/cancel") -- Gitblit v1.7.1