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
166
167
168
169
170
171
172
173
174
175
176
177
178
package com.yiboshi.science.rest.v1;
import com.yiboshi.arch.base.ResponseDataModel;
import com.yiboshi.science.base.Pagination;
import com.yiboshi.science.config.annotation.Logs;
import com.yiboshi.science.config.bean.SystemProperties;
import com.yiboshi.science.config.security.SecurityUserHolder;
import com.yiboshi.science.entity.ComProjectAudit;
import com.yiboshi.science.entity.ComProjectConclusion;
import com.yiboshi.science.enumeration.CommonEnum;
import com.yiboshi.science.param.dto.ComProjectConclusionDTO;
import com.yiboshi.science.param.dto.ComUnitDTO;
import com.yiboshi.science.param.dto.DataStatisticsDTO;
import com.yiboshi.science.param.query.ComProjectConclusionQueryVO;
import com.yiboshi.science.rest.BaseController;
import com.yiboshi.science.service.ComProjectConclusionService;
import com.yiboshi.science.service.ComUnitService;
import com.yiboshi.science.utils.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
/**
* 功能:结题信息表 接口
* @author lkl
* @version 2021-08-26
*/
@Api(tags = "com-project-conclusion",description = "结题信息表")
@RestController
@RequestMapping("/v1/science-admin/com-project-conclusion")
public class ComProjectConclusionController extends BaseController<ComProjectConclusionService, ComProjectConclusionQueryVO, ComProjectConclusionDTO, ComProjectConclusion> {
@Autowired
private ComProjectConclusionService comProjectConclusionService;
@Autowired
private ComUnitService comUnitService;
private final SystemProperties properties;
public ComProjectConclusionController(SystemProperties properties) {
this.properties = properties;
}
/**
* 功能:分页查询
*
* @param vo 查询条件
*/
@ApiOperation(value = "分页查询", httpMethod = "GET", notes = "根据参数获取列表")
@GetMapping
@RequestMapping("/getListByPage")
@PreAuthorize("hasAnyRole(\"REPORT\",\"ADMIN\")")
public ResponseDataModel<Pagination<ComProjectConclusionDTO>> getListByPage(@Validated ComProjectConclusionQueryVO vo, BindingResult bindingResult) {
if (!StringUtil.isContainsRole(SecurityUserHolder.getRoles(), CommonEnum.systemRole.sys.getCode().toString())) {
vo.setAppPersonId(SecurityUserHolder.getPersonId());
}
return getPaginationResponseDataModel(vo);
}
/**
* 获取统计数据
*/
@ApiOperation(value = "获取统计数据", httpMethod = "GET", notes = "获取统计数据")
@GetMapping
@RequestMapping("/getCount")
public ResponseDataModel<DataStatisticsDTO> getCount(@Validated ComProjectConclusionDTO vo) {
vo.setAppPersonId(SecurityUserHolder.getPersonId());
return ResponseDataModel.ok(comProjectConclusionService.getCount(vo));
}
/**
* 功能:分页查询
*
* @param vo 查询条件
*/
@ApiOperation(value = "分页查询", httpMethod = "GET", notes = "根据参数获取列表")
@GetMapping
@RequestMapping("/getAuditListByPage")
@PreAuthorize("hasAnyRole(\"GOV\")")
public ResponseDataModel<Pagination<ComProjectConclusionDTO>> getAuditListByPage(@Validated ComProjectConclusionQueryVO vo, BindingResult bindingResult) {
return getPaginationResponseDataModel(vo);
}
private ResponseDataModel<Pagination<ComProjectConclusionDTO>> getPaginationResponseDataModel(@Validated ComProjectConclusionQueryVO vo) {
Pagination<ComProjectConclusionDTO> page = comProjectConclusionService.getListByPage(vo);
if (null != page && null != page.getDataList() && page.getDataList().size() != 0) {
page.getDataList().forEach((e) -> {
if (null != e.getProjState())
e.setStateName(CommonEnum.conclusionState.getEnum(e.getState()).getDescription());
});
}
return ResponseDataModel.ok(page);
}
/**
* 根据id获取结题信息
*
* @param id 查询条件
*/
@ApiOperation(value = "根据id获取结题信息", httpMethod = "GET", notes = "根据id获取结题信息")
@GetMapping
@RequestMapping("/getConclusionByProjId")
public ResponseDataModel<ComProjectConclusionDTO> getConclusionByProjId(@Validated String id) {
return ResponseDataModel.ok(comProjectConclusionService.getByProjId(id));
}
/**
* 保存项目结题信息
*
* @param comProjectConclusionDTO
*/
@ApiOperation(value = "保存项目结题信息", httpMethod = "POST", notes = "保存项目结题信息")
@PostMapping
@RequestMapping("/save")
@Logs(value = CommonEnum.logType.conclusionSave)
public ResponseDataModel<String> save(@Validated @RequestBody ComProjectConclusionDTO comProjectConclusionDTO, BindingResult bindingResult) {
return ResponseDataModel.ok(comProjectConclusionService.save(comProjectConclusionDTO));
}
/**
* 上传论文
*
* @param comProjectConclusionDTO
*/
@ApiOperation(value = "上传论文", httpMethod = "POST", notes = "上传论文")
@PostMapping
@RequestMapping("/saveThesis")
@Logs(value = CommonEnum.logType.conclusionSave)
public ResponseDataModel<String> saveThesis(@Validated @RequestBody ComProjectConclusionDTO comProjectConclusionDTO, BindingResult bindingResult) {
return ResponseDataModel.ok(comProjectConclusionService.saveThesis(comProjectConclusionDTO,"ef2123fc-e7c0-4521-be59-244f9052253b"));
}
/**
* 项目结题上报
*
* @param
*/
@ApiOperation(value = "项目结题", httpMethod = "PUT", notes = "项目结题")
@PostMapping
@RequestMapping("/report")
@Logs(value = CommonEnum.logType.conclusionReport)
public ResponseDataModel<String> report(@Validated @RequestBody ComProjectConclusion e) {
String treeCode = SecurityUserHolder.getUnitCode();
// 获取上级单位
treeCode = treeCode.substring(0, properties.getDefaultCodeLength());
ComUnitDTO unit = comUnitService.getByTreeCode(treeCode);
return ResponseDataModel.ok(comProjectConclusionService.report(e.getProjId(),unit.getId(),treeCode));
}
@ApiOperation(value = "论文审核", httpMethod = "POST", notes = "论文审核")
@PostMapping
@RequestMapping("/thesisAudit")
@Logs(value = CommonEnum.logType.thesisAudit)
public ResponseDataModel<String> thesisAudit(@Validated @RequestBody ComProjectAudit comProjectAudit, BindingResult bindingResult) {
comProjectConclusionService.thesisAudit(comProjectAudit);
return ResponseDataModel.ok("审核成功");
}
@ApiOperation(value = "结题", httpMethod = "POST", notes = "结题")
@RequestMapping(value = "createConclusionRecord/{id}")
@PostMapping
public ResponseDataModel<String> createConclusionRecord(@PathVariable String id){
comProjectConclusionService.createConclusionRecord(id,"ef2123fc-e7c0-4521-be59-244f9052253b");
return ResponseDataModel.ok("提交成功");
}
@RequestMapping("/getPdfById")
@GetMapping
public void getPdfById(@Validated String id)throws IOException{
comProjectConclusionService.exportPdfById(response,id);
}
}