无关风月
2025-03-06 d8b5536c53c7eddd0c6705d63babeaea005944b0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
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;
 
/**
 * <p>
 * 验收记录 前端控制器
 * </p>
 *
 * @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<PageInfo<TCheckAcceptRecordVO>> pageList(@RequestBody TCheckAcceptRecordQuery query) {
        return R.ok(checkAcceptRecordService.pageList(query));
    }
 
    /**
     * 通过合同id查询房屋信息
     */
    @ApiOperation(value = "通过合同id查询房屋信息")
    @PostMapping(value = "/getHouseByContractId")
    public R<THouse> 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<TContract> 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<Boolean> add(@Validated @RequestBody TCheckAcceptRecord dto) {
        dto.setAcceptanceTime(dto.getCheckTime());
        LocalDate now = LocalDate.now();
        String replace = (now + "").replace("-", "");
        int size = checkAcceptRecordService.list(new LambdaQueryWrapper<TCheckAcceptRecord>()
                .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<TCheckAcceptRecordVO> 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<Boolean> 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<Boolean> deleteByIds(@RequestBody List<String> ids) {
        return R.ok(checkAcceptRecordService.removeByIds(ids));
    }
 
}