jinlin
2024-02-21 b27d06b8f0b805efd16e28fd80a57a0ed8a053ce
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
package com.zt.life.modules.project.controller;
 
 
import cn.hutool.core.convert.Convert;
import com.zt.common.annotation.LogOperation;
import com.zt.common.constant.Constant;
import com.zt.common.annotation.QueryParam;
import com.zt.common.db.query.QueryFilter;
import com.zt.common.servlet.Result;
import com.zt.common.servlet.PageResult;
import com.zt.common.validator.AssertUtils;
import com.zt.common.validator.ValidatorUtils;
import com.zt.common.validator.group.AddGroup;
import com.zt.common.validator.group.DefaultGroup;
import com.zt.common.validator.group.UpdateGroup;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.core.sys.model.SysUser;
import com.zt.life.modules.project.dto.MyProjectRoleDto;
import com.zt.life.modules.project.dto.ProjectUserDto;
import com.zt.life.modules.project.model.Project;
import com.zt.life.modules.project.service.ProjectService;
import com.zt.modules.coderule.service.SysCodeRuleService;
import com.zt.modules.sys.service.SysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
 
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
 
/**
 * project
 *
 * @author zt generator
 * @since 1.0.0 2023-11-07
 */
@RestController
@RequestMapping("/project/Project/")
@Api(tags = "project")
public class ProjectController {
    @Autowired
    private ProjectService projectService;
    @Autowired
    private SysCodeRuleService sysCodeRuleService;
 
    @Autowired
    private SysUserService sysUserService;
 
    @GetMapping("page")
    @ApiOperation("分页")
    @ApiImplicitParams({
            @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
            @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
            @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
            @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
            @ApiImplicitParam(name = "softwareName", value = "软件名称", dataType = Constant.QT.STRING, format = "software_name^LK"),
            @ApiImplicitParam(name = "secretClass", value = "密级", dataType = Constant.QT.STRING, format = "secret_class^EQ"),
            @ApiImplicitParam(name = "criticalLevel", value = "关键等级", dataType = Constant.QT.STRING, format = "critical_level^EQ"),
            @ApiImplicitParam(name = "softwareType", value = "软件类型", dataType = Constant.QT.STRING, format = "software_type^EQ"),
            @ApiImplicitParam(name = "isContract", value = "是否签署合同", dataType = Constant.QT.STRING, format = "is_contract^EQ"),
            @ApiImplicitParam(name = "tableName", value = "功能表", dataType = Constant.QT.STRING),
            @ApiImplicitParam(name = "pageCode", value = "页面标识", dataType = Constant.QT.STRING),
    })
    public PageResult<Project> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
        if (queryFilter.getParams().containsValue("baseline_release") || queryFilter.getParams().containsValue("config_item_warehouse") || queryFilter.getParams().containsValue("test_review_comment")) {
            queryFilter.getParams().replace("tableName", "");
        }
        List<Project> Project = projectService.page(queryFilter);
        for (Project project2 : Project) {
            String leaderName = project2.getProjectLeader();
            if (leaderName.length() > 10) {
                leaderName = sysUserService.getNames(leaderName);
            }
            project2.setProjectLeader(leaderName);
        }
        return PageResult.ok(Project);
    }
 
    @GetMapping("myProjectRole/{projectId}")
    @ApiOperation("获取当前用户的项目角色")
    public Result<MyProjectRoleDto> myProjectRole(@PathVariable("projectId") Long projectId) {
        MyProjectRoleDto data = projectService.getMyProjectRole(projectId);
        return Result.ok(data);
    }
 
    @GetMapping("{id}")
    @ApiOperation("信息")
    public Result<Project> get(@PathVariable("id") Long id) {
        Project data = projectService.get(id);
        if (data.getBizDeptId() == null) {
            data.setBizDeptId(UserContext.getDeptId().toString());
        }
        return Result.ok(data);
    }
 
    @PostMapping
    @ApiOperation("新增")
    @LogOperation("新增")
    public Result insert(@RequestBody Project project) {
        //效验数据
        ValidatorUtils.validateEntity(project, AddGroup.class, DefaultGroup.class);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String year = sdf.format(new Date());
        Map<String, String> map = new HashMap<>();
        map.put("funCode", "project");
        map.put("year", year);
        project.setYear(year);
        project.setCode(sysCodeRuleService.getNewCode(map));
 
        projectService.insert(project);
        return Result.ok();
    }
 
    @PutMapping
    @ApiOperation("修改")
    @LogOperation("修改")
    public Result update(@RequestBody Project project) {
        //效验数据
        ValidatorUtils.validateEntity(project, UpdateGroup.class, DefaultGroup.class);
        projectService.update(project);
        return Result.ok();
    }
 
    @DeleteMapping("deleteProject")
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids) {
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");
        projectService.delete(ids);
 
        return Result.ok();
    }
 
    @GetMapping("getUsersLists")
    @ApiOperation("返回用户列表")
    @LogOperation("返回用户列表")
    public Result<ProjectUserDto> getUsersLists(String deptId) {
        ProjectUserDto projectUserDto = new ProjectUserDto();
        projectUserDto.setZrr(sysUserService.getUsersList("zrr", deptId));
        projectUserDto.setCsry(sysUserService.getUsersList("csry", deptId));
        projectUserDto.setShry(sysUserService.getUsersList("shry", deptId));
        projectUserDto.setPzry(sysUserService.getUsersList("pzry", deptId));
        return Result.ok(projectUserDto);
    }
 
}