package com.ruoyi.web.controller.api; 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.core.domain.R; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.model.TBill; import com.ruoyi.system.model.TCheckAcceptRecord; import com.ruoyi.system.model.TContract; import com.ruoyi.system.model.THouse; import com.ruoyi.system.query.TCheckAcceptRecordQuery; import com.ruoyi.system.service.TBillService; import com.ruoyi.system.service.TCheckAcceptRecordService; import com.ruoyi.system.service.TContractService; import com.ruoyi.system.service.THouseService; import com.ruoyi.system.vo.TCheckAcceptRecordVO; 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.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; /** *

* 验收记录 前端控制器 *

* * @author xiaochen * @since 2025-01-17 */ @Api(tags = "验收记录管理") @RestController @RequestMapping("/t-check-accept-record") public class TCheckAcceptRecordController { private final TCheckAcceptRecordService checkAcceptRecordService; private final TContractService contractService; private final THouseService houseService; @Autowired private TBillService billService; @Autowired public TCheckAcceptRecordController(TCheckAcceptRecordService checkAcceptRecordService, TContractService contractService, THouseService houseService) { this.checkAcceptRecordService = checkAcceptRecordService; this.contractService = contractService; this.houseService = houseService; } /** * 获取验收记录管理列表 */ @PreAuthorize("@ss.hasPermi('houseManage:check:list')") @ApiOperation(value = "获取验收记录分页列表") @PostMapping(value = "/pageList") public R> pageList(@RequestBody TCheckAcceptRecordQuery query) { return R.ok(checkAcceptRecordService.pageList(query)); } /** * 通过合同id查询房屋信息 */ @ApiOperation(value = "通过合同id查询房屋信息") @PostMapping(value = "/getHouseByContractId") public R getHouseByContractId(@RequestParam String contractId) { TContract contract = contractService.getById(contractId); THouse house = houseService.getById(contract.getHouseId()); return R.ok(house); } /** * 通过房屋id查询合同信息 */ @ApiOperation(value = "通过房屋id查询合同信息") @PostMapping(value = "/getContractByHouseId") public R getContractByHouseId(@RequestParam String houseId) { TContract contract = contractService.getOne(Wrappers.lambdaQuery(TContract.class) .eq(TContract::getHouseId, houseId) .orderByDesc(TContract::getCreateTime) .in(TContract::getStatus, 4, 6, 7) .last("LIMIT 1")); return R.ok(contract); } /** * 添加验收记录管理 */ @PreAuthorize("@ss.hasPermi('houseManage:check:add')") @Log(title = "验收记录信息-新增验收记录", businessType = BusinessType.INSERT) @ApiOperation(value = "添加验收记录") @PostMapping(value = "/add") public R add(@Validated @RequestBody TCheckAcceptRecord dto) { dto.setAcceptanceTime(dto.getCheckTime()); LocalDate now = LocalDate.now(); String replace = (now + "").replace("-", ""); int size = checkAcceptRecordService.list(new LambdaQueryWrapper() .likeRight(TCheckAcceptRecord::getAcceptanceTime, LocalDate.now())).size(); dto.setCode(replace.substring(2)+String.format("%03d", size+1)); // 添加验收记录 checkAcceptRecordService.save(dto); if (dto.getCheckMoney()!=null&&(dto.getCheckMoney().compareTo(new BigDecimal("0"))!=0)){ TContract contract = contractService.getById(dto.getContractId()); // TODO 生成结算帐单 TBill tBill = new TBill(); tBill.setContractId(dto.getContractId()); tBill.setContractNumber(contract.getContractNumber()); tBill.setPayableFeesMoney(dto.getCheckMoney()); tBill.setPayableFeesTime(LocalDate.now()); tBill.setPayFeesStatus("1"); tBill.setBillType("4"); tBill.setSmsStatus(0); billService.save(tBill); } return R.ok(); } /** * 查看验收记录详情 */ @PreAuthorize("@ss.hasPermi('houseManage:check:detail')") @ApiOperation(value = "查看验收记录详情") @GetMapping(value = "/getDetailById") public R getDetailById(@RequestParam String id) { TCheckAcceptRecord checkAcceptRecord = checkAcceptRecordService.getById(id); TCheckAcceptRecordVO checkAcceptRecordVO = new TCheckAcceptRecordVO(); BeanUtils.copyProperties(checkAcceptRecord, checkAcceptRecordVO); // 查询合同信息 checkAcceptRecordVO.setContract(contractService.getById(checkAcceptRecord.getContractId())); // 查询房屋信息 checkAcceptRecordVO.setHouse(houseService.getById(checkAcceptRecord.getHouseId())); return R.ok(checkAcceptRecordVO); } /** * 删除验收记录 */ @PreAuthorize("@ss.hasPermi('houseManage:check:delete')") @Log(title = "验收记录信息-删除验收记录", businessType = BusinessType.DELETE) @ApiOperation(value = "删除验收记录") @DeleteMapping(value = "/deleteById") public R deleteById(@RequestParam String id) { return R.ok(checkAcceptRecordService.removeById(id)); } /** * 批量删除验收记录 */ @PreAuthorize("@ss.hasPermi('houseManage:check:delete')") @Log(title = "验收记录信息-删除验收记录", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除验收记录") @DeleteMapping(value = "/deleteByIds") public R deleteByIds(@RequestBody List ids) { return R.ok(checkAcceptRecordService.removeByIds(ids)); } }