ProjectTaskController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package com.ruoyi.web.controller.project;
  2. import com.ruoyi.common.config.RuoYiConfig;
  3. import com.ruoyi.common.core.controller.BaseController;
  4. import com.ruoyi.common.core.domain.AjaxResult;
  5. import com.ruoyi.common.core.domain.entity.SysUser;
  6. import com.ruoyi.common.core.domain.model.LoginUser;
  7. import com.ruoyi.common.core.page.TableDataInfo;
  8. import com.ruoyi.common.utils.file.FileUploadUtils;
  9. import com.ruoyi.common.utils.file.MimeTypeUtils;
  10. import com.ruoyi.common.utils.poi.ExcelUtil;
  11. import com.ruoyi.project.bo.ProjectListInput;
  12. import com.ruoyi.project.bo.ProjectStaffRecordInput;
  13. import com.ruoyi.project.bo.ProjectStaffRecordOut;
  14. import com.ruoyi.project.bo.ProjectTaskListOut;
  15. import com.ruoyi.project.domain.ProjectStaff;
  16. import com.ruoyi.project.domain.ProjectStaffRecord;
  17. import com.ruoyi.project.domain.ProjectTask;
  18. import com.ruoyi.project.service.ProjectStaffRecordService;
  19. import com.ruoyi.project.service.ProjectStaffService;
  20. import com.ruoyi.project.service.ProjectTaskService;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.validation.annotation.Validated;
  23. import org.springframework.web.bind.annotation.*;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.awt.print.Pageable;
  27. import java.util.List;
  28. /**
  29. * 项目管理
  30. */
  31. @RestController
  32. @RequestMapping("/api/project")
  33. public class ProjectTaskController extends BaseController {
  34. @Autowired
  35. private ProjectTaskService projectTaskService;
  36. @Autowired
  37. private ProjectStaffService projectStaffService;
  38. @Autowired
  39. private ProjectStaffRecordService projectStaffRecordService;
  40. /**
  41. * 新增项目任务
  42. * @param projectTask
  43. * @return
  44. */
  45. @PostMapping("/add")
  46. public AjaxResult add( @RequestBody ProjectTask projectTask){
  47. if (projectTask.getAid()== null){
  48. return error("负责人不能为空");
  49. }
  50. return projectTaskService.addProjectTask(projectTask);
  51. }
  52. /**
  53. * 新增项目成员
  54. * @param in
  55. * @return
  56. */
  57. @PostMapping("/addStaff")
  58. public AjaxResult addStaff( @RequestBody ProjectStaff in){
  59. if (in.getAid()== null){
  60. return error("项目成员不能为空");
  61. }
  62. return projectStaffService.addStaff(in);
  63. }
  64. /**
  65. * 新增成员打卡
  66. * @param in
  67. * @return
  68. */
  69. @PostMapping("/addRecord")
  70. public AjaxResult addRecord( @RequestBody ProjectStaffRecord in){
  71. return projectStaffRecordService.add(in);
  72. }
  73. /**
  74. * 修改成员打卡
  75. * @param in
  76. * @return
  77. */
  78. @PostMapping("/updateRecord")
  79. public AjaxResult updateRecord( @RequestBody ProjectStaffRecord in){
  80. return projectStaffRecordService.update(in);
  81. }
  82. /**
  83. * 审核成员打卡
  84. * @param in
  85. * @return
  86. */
  87. @PostMapping("/examineRecord")
  88. public AjaxResult examineRecord( @RequestBody ProjectStaffRecord in){
  89. if (in.getProcessStatus()!=2 && in.getProcessStatus()!=3){
  90. return AjaxResult.error("审核状态错误");
  91. }
  92. return projectStaffRecordService.examineRecord(in);
  93. }
  94. /**
  95. * 成员打卡列表
  96. * @param in
  97. * @return
  98. */
  99. @GetMapping("/listRecord")
  100. public TableDataInfo listRecord( ProjectStaffRecordInput in){
  101. startPage();
  102. List<ProjectStaffRecordOut> list = projectStaffRecordService.listRecord(in);
  103. return getDataTable(list,in.getPageNum());
  104. }
  105. /**
  106. * 导出项目列表
  107. * @param response
  108. */
  109. @PostMapping("/listRecord/export")
  110. public void listRecordExport(HttpServletResponse response, ProjectStaffRecordInput in){
  111. List<ProjectStaffRecordOut> list=projectStaffRecordService.listRecord(in);
  112. ExcelUtil<ProjectStaffRecordOut> util = new ExcelUtil<>(ProjectStaffRecordOut.class);
  113. util.exportExcel(response, list, "项目研发日志列表");
  114. }
  115. /**
  116. * 导入数据
  117. * @param file
  118. * @param isUpdateSupport
  119. * @return
  120. * @throws Exception
  121. */
  122. @PostMapping("/listRecord/importData")
  123. public AjaxResult listRecordImportData(MultipartFile file, boolean isUpdateSupport) throws Exception
  124. {
  125. ExcelUtil<ProjectStaffRecordOut> util = new ExcelUtil<>(ProjectStaffRecordOut.class);
  126. List<ProjectStaffRecordOut> list = util.importExcel(file.getInputStream());
  127. String operName = getUsername();
  128. String message = projectStaffRecordService.importProject(list, isUpdateSupport, operName);
  129. return success(message);
  130. }
  131. /**
  132. * 删除项目成员
  133. * @param in
  134. * @return
  135. */
  136. @PostMapping("/deleteStaff")
  137. public AjaxResult deleteStaff( @RequestBody ProjectStaff in){
  138. if (in.getId()== null){
  139. return error("项目成员编号不能为空");
  140. }
  141. return projectStaffService.deleteStaff(in);
  142. }
  143. /**
  144. * 删除项目
  145. * @param in
  146. * @return
  147. */
  148. @PostMapping("/deleteProject")
  149. public AjaxResult deleteProject( @RequestBody ProjectTask in){
  150. if (in.getId()== null){
  151. return error("项目编号不能为空");
  152. }
  153. return projectTaskService.deleteProject(in);
  154. }
  155. /**
  156. * 项目详情
  157. * @param id
  158. * @return
  159. */
  160. @GetMapping ("/details")
  161. public AjaxResult details( Long id){
  162. if (id== null){
  163. return error("项目编号不能为空");
  164. }
  165. return projectTaskService.details(id);
  166. }
  167. /**
  168. * 项目列表
  169. * @param
  170. * @return
  171. */
  172. @GetMapping ("/list")
  173. public TableDataInfo list(ProjectListInput in){
  174. startPage();
  175. List<ProjectTaskListOut> list=projectTaskService.list(in);
  176. return getDataTable(list,in.getPageNum());
  177. }
  178. /**
  179. * 导出项目列表
  180. * @param response
  181. */
  182. @PostMapping("/export")
  183. public void export(HttpServletResponse response,ProjectListInput in)
  184. {
  185. List<ProjectTaskListOut> list=projectTaskService.list(in);
  186. ExcelUtil<ProjectTaskListOut> util = new ExcelUtil<>(ProjectTaskListOut.class);
  187. util.exportExcel(response, list, "项目列表");
  188. }
  189. /**
  190. * 导入数据
  191. * @param file
  192. * @param isUpdateSupport
  193. * @return
  194. * @throws Exception
  195. */
  196. @PostMapping("/importData")
  197. public AjaxResult importData(MultipartFile file, boolean isUpdateSupport) throws Exception
  198. {
  199. ExcelUtil<ProjectTaskListOut> util = new ExcelUtil<>(ProjectTaskListOut.class);
  200. List<ProjectTaskListOut> list = util.importExcel(file.getInputStream());
  201. String operName = getUsername();
  202. String message = projectTaskService.importProject(list, isUpdateSupport, operName);
  203. return success(message);
  204. }
  205. /**
  206. * 上传项目文件
  207. * @param file
  208. * @return
  209. * @throws Exception
  210. */
  211. @PostMapping("/upload")
  212. public AjaxResult upload(@RequestParam("file") MultipartFile file) throws Exception{
  213. if (!file.isEmpty()){
  214. String avatar = FileUploadUtils.upload(RuoYiConfig.getUploadPath(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
  215. AjaxResult ajax = AjaxResult.success();
  216. ajax.put("imgUrl", avatar);
  217. return ajax;
  218. }
  219. return error("上传图片异常,请联系管理员");
  220. }
  221. }