package com.ruoyi.web.controller.api;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.basic.PageInfo;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.system.dto.TContractDTO;
|
import com.ruoyi.system.dto.THouseDTO;
|
import com.ruoyi.system.model.TContract;
|
import com.ruoyi.system.model.TContractRentType;
|
import com.ruoyi.system.model.THouse;
|
import com.ruoyi.system.query.THouseQuery;
|
import com.ruoyi.system.query.TUserHistoryQuery;
|
import com.ruoyi.system.service.TContractRentTypeService;
|
import com.ruoyi.system.service.TContractService;
|
import com.ruoyi.system.service.THouseService;
|
import com.ruoyi.system.vo.HouseVO;
|
import com.ruoyi.system.vo.TContractVO;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.time.LocalDateTime;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 合同管理 前端控制器
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-01-17
|
*/
|
@Api(tags = "合同管理")
|
@RestController
|
@RequestMapping("/t-contract")
|
public class TContractController {
|
@Autowired
|
private TContractService contractService;
|
@Autowired
|
private TContractRentTypeService contractRentTypeService;
|
@Autowired
|
private THouseService houseService;
|
@Log(title = "合同管理-新增合同", businessType = BusinessType.INSERT)
|
@ApiOperation(value = "新增合同")
|
@PostMapping(value = "/addContract")
|
public AjaxResult<Boolean> addContract(@Validated @RequestBody TContractDTO dto) {
|
contractService.save(dto);
|
if (dto.getIsIncreasing()==1){
|
TContractRentType tContractRentType = new TContractRentType();
|
tContractRentType.setContractId(dto.getId());
|
tContractRentType.setIncreasingDecreasing(dto.getIncreasingDecreasing());
|
tContractRentType.setIncreasingDecreasingType(dto.getIncreasingDecreasingType());
|
tContractRentType.setNumericalValue(dto.getNumericalValue());
|
tContractRentType.setChangeTime(dto.getChangeTime());
|
contractRentTypeService.save(tContractRentType);
|
}
|
return AjaxResult.success();
|
}
|
@Log(title = "合同管理-编辑合同", businessType = BusinessType.UPDATE)
|
@ApiOperation(value = "编辑合同")
|
@PostMapping(value = "/updateContract")
|
public AjaxResult<Boolean> updateContract(@Validated @RequestBody TContractDTO dto) {
|
contractService.updateById(dto);
|
contractRentTypeService.remove(new LambdaQueryWrapper<TContractRentType>()
|
.eq(TContractRentType::getContractId,dto.getId()));
|
if (dto.getIsIncreasing()==1){
|
TContractRentType tContractRentType = new TContractRentType();
|
tContractRentType.setContractId(dto.getId());
|
tContractRentType.setIncreasingDecreasing(dto.getIncreasingDecreasing());
|
tContractRentType.setIncreasingDecreasingType(dto.getIncreasingDecreasingType());
|
tContractRentType.setNumericalValue(dto.getNumericalValue());
|
tContractRentType.setChangeTime(dto.getChangeTime());
|
contractRentTypeService.save(tContractRentType);
|
}
|
return AjaxResult.success();
|
}
|
@Log(title = "合同管理-批量删除合同", businessType = BusinessType.DELETE)
|
@ApiOperation(value = "批量删除合同")
|
@DeleteMapping(value = "/deleteContractByIds")
|
public AjaxResult<Boolean> deleteContractByIds3
|
(@RequestParam String ids) {
|
if (StringUtils.isNotEmpty(ids)){
|
contractService.removeBatchByIds(Arrays.asList(ids.split(",")));
|
}
|
return AjaxResult.success();
|
}
|
|
@ApiOperation(value = "查询合同信息信息")
|
@GetMapping(value = "/getContractById")
|
public AjaxResult<TContractVO> getContractById(@RequestParam Long id) {
|
TContractVO res = new TContractVO();
|
TContract contract = contractService.getById(id);
|
BeanUtils.copyProperties(contract,res);
|
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);
|
return AjaxResult.success();
|
}
|
|
}
|