“mitao”
2026-01-24 830c848592d99191341b24159a0a0d96888b73bf
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
package com.estate.expert.admin.controller.admin;
 
import com.estate.expert.admin.domain.common.request.BatchReq;
import com.estate.expert.admin.domain.common.request.PageReq;
import com.estate.expert.admin.domain.common.response.PageResp;
import com.estate.expert.admin.domain.project.info.ProjectInfoDto;
import com.estate.expert.admin.domain.project.info.ProjectInfoMapper;
import com.estate.expert.admin.domain.user.User;
import com.estate.expert.admin.enums.BizResultCode;
import com.estate.expert.admin.service.CheckTaskService;
import com.estate.expert.admin.service.ProjectInfoService;
import com.estate.expert.common.domain.Session;
import com.estate.expert.common.rpc.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
 
@Api(tags = "管理后台/项目信息")
@Slf4j
@CrossOrigin
@RestController
@RequestMapping("/admin/projectInfo")
@Validated
public class ProjectInfoController {
 
    @Resource
    private ProjectInfoService projectInfoService;
 
    @Resource
    private ProjectInfoMapper projectInfoMapper;
 
    @Resource
    private CheckTaskService checkTaskService;
 
    @ApiOperation(value = "项目信息列表")
    @PostMapping("/list")
    public Result list(@RequestParam(value = "projectId") Integer projectId,
                       @Validated @RequestBody PageReq pageReq) {
        return Result.success(projectInfoService.list(projectId, pageReq));
    }
 
    @ApiOperation(value = "添加项目信息")
    @PostMapping("/add")
    public Result add(Session session, @Validated @RequestBody ProjectInfoDto projectInfo) {
        projectInfoService.add((User)session.getUser(), projectInfoMapper.toEntity(projectInfo));
        return Result.success();
    }
 
    @ApiOperation(value = "获取项目信息")
    @GetMapping("/getByCheckTaskId")
    public Result getByCheckTaskId(@RequestParam("checkTaskId") Integer checkTaskId) {
        //
        //客户端能查看最新的
        //能添加
        //不能编辑
        //
        //关闭项目的时候,关联项目最后一条信息到检查任务上,不管是谁添加的,用于出报告
        var checkTask = checkTaskService.get(checkTaskId);
        BizResultCode.CHECK_TASK_NOT_EXIST.check(checkTask == null);
        var projectInfo = projectInfoService.latest(checkTask.getProject().getId());
        BizResultCode.PROJECT_INFO_NOT_EXIST.check(projectInfo == null);
        return Result.success(projectInfoService.toDto(projectInfo));
    }
 
    @ApiOperation(value = "获取项目最新信息")
    @GetMapping("/latest")
    public Result latest(@RequestParam("projectId") Integer projectId) {
        var projectInfo = projectInfoService.latest(projectId);
        BizResultCode.PROJECT_INFO_NOT_EXIST.check(projectInfo == null);
        return Result.success(projectInfoService.toDto(projectInfo));
    }
 
    @ApiOperation(value = "编辑项目信息")
    @PostMapping("/edit")
    public Result edit(@Validated @RequestBody ProjectInfoDto projectInfoDto) {
        projectInfoService.edit(projectInfoDto);
        return Result.success();
    }
 
    @ApiOperation(value = "删除项目信息")
    @PostMapping("/del")
    public Result delete(@Validated @RequestBody BatchReq request) {
        projectInfoService.deleteAllById(request.getIds());
        return Result.success();
    }
 
}