TechProjectApiController.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. package com.goafanti.techproject.controller;
  2. import java.text.ParseException;
  3. import java.util.List;
  4. import javax.annotation.Resource;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import javax.validation.Valid;
  8. import org.springframework.beans.BeanUtils;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.validation.BindingResult;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RequestMethod;
  13. import com.goafanti.common.bo.Result;
  14. import com.goafanti.common.constant.ErrorConstants;
  15. import com.goafanti.common.controller.CertifyApiController;
  16. import com.goafanti.common.enums.CopyrightFields;
  17. import com.goafanti.common.enums.TechProjectStatus;
  18. import com.goafanti.common.model.TechProject;
  19. import com.goafanti.common.model.TechProjectLog;
  20. import com.goafanti.common.model.User;
  21. import com.goafanti.common.utils.StringUtils;
  22. import com.goafanti.core.shiro.token.TokenManager;
  23. import com.goafanti.techproject.bo.InputTechProject;
  24. import com.goafanti.techproject.bo.TechProjectDetailBo;
  25. import com.goafanti.techproject.service.TechProjectLogService;
  26. import com.goafanti.techproject.service.TechProjectService;
  27. import com.goafanti.techproject.service.TechWebsiteService;
  28. @Controller
  29. @RequestMapping(value = "/api/techproject")
  30. public class TechProjectApiController extends CertifyApiController {
  31. @Resource
  32. private TechProjectService techProjectService;
  33. @Resource
  34. private TechWebsiteService techWebsiteService;
  35. @Resource
  36. private TechProjectLogService techProjectLogService;
  37. /**
  38. * 获取科技部门
  39. * @return
  40. */
  41. @RequestMapping(value = "/getDepartment", method = RequestMethod.GET)
  42. public Result getDepartment(String uid){
  43. Result res = new Result();
  44. res.setData(techWebsiteService.getDepartment(TokenManager.getUserId()));
  45. return res;
  46. }
  47. /**
  48. * 科技项目申报列表
  49. *
  50. * @param pageNo
  51. * @param pageSize
  52. * @return
  53. */
  54. @RequestMapping(value = "/listClientTechProject", method = RequestMethod.POST)
  55. public Result listClientTechProject(String pageNo, String pageSize) {
  56. Result res = new Result();
  57. if (!checkUserLogin(res)) {
  58. return res;
  59. }
  60. Integer pNo = 1;
  61. Integer pSize = 10;
  62. if (StringUtils.isNumeric(pageSize)) {
  63. pSize = Integer.parseInt(pageSize);
  64. }
  65. if (StringUtils.isNumeric(pageNo)) {
  66. pNo = Integer.parseInt(pageNo);
  67. }
  68. res.setData(techProjectService.listClientTechProject(TokenManager.getUserId(), pNo, pSize));
  69. return res;
  70. }
  71. /**
  72. * 科技项目申报
  73. *
  74. * @return
  75. */
  76. @RequestMapping(value = "/applyTechProject", method = RequestMethod.POST)
  77. public Result applyTechProject(@Valid InputTechProject techProject, BindingResult bindingResult) {
  78. Result res = new Result();
  79. if (bindingResult.hasErrors()) {
  80. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  81. CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
  82. return res;
  83. }
  84. if (!checkUserLogin(res)) {
  85. return res;
  86. }
  87. User curUser = TokenManager.getUserToken();
  88. if (!checkCertify(res, curUser)) {
  89. return res;
  90. }
  91. TechProject tp = new TechProject();
  92. BeanUtils.copyProperties(techProject, tp);
  93. tp.setUid(TokenManager.getUserId());
  94. techProjectService.saveTechProject(tp, TokenManager.getToken().getAid());
  95. return res;
  96. }
  97. /**
  98. * 科技项目申报详情
  99. *
  100. * @return
  101. */
  102. @RequestMapping(value = "/techProjectDetial", method = RequestMethod.POST)
  103. public Result techProjectDetial(String pid) {
  104. Result res = new Result();
  105. if (!checkUserLogin(res)) {
  106. return res;
  107. }
  108. if (StringUtils.isBlank(pid)) {
  109. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目ID"));
  110. } else {
  111. TechProjectDetailBo tpd = techProjectService.selectProjectDetail(pid);
  112. if (null != tpd.getUid() && tpd.getUid().equals(TokenManager.getUserId())) {
  113. res.setData(tpd);
  114. } else {
  115. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
  116. }
  117. }
  118. return res;
  119. }
  120. /**
  121. * 科技项目状态流转
  122. *
  123. * @param pid
  124. * @return
  125. */
  126. @RequestMapping(value = "/techProjectLog", method = RequestMethod.POST)
  127. public Result techProjectLog(String pid) {
  128. Result res = new Result();
  129. if (!checkUserLogin(res)) {
  130. return res;
  131. }
  132. if (StringUtils.isBlank(pid)) {
  133. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目ID"));
  134. return res;
  135. }
  136. TechProject tp = techProjectService.selectByPrimaryKey(pid);
  137. if (null != tp.getUid() && tp.getUid().equals(TokenManager.getUserId())){
  138. List<TechProjectLog> list = techProjectLogService.selectTechProjectLogByPid(pid);
  139. for (TechProjectLog log : list){
  140. if (TechProjectStatus.getStatus(log.getState()) == TechProjectStatus.SIGN){
  141. log.setState(TechProjectStatus.CREATE.getCode());
  142. }
  143. if (TechProjectStatus.getStatus(log.getState()) == TechProjectStatus.CIRCULATION){
  144. log.setState(TechProjectStatus.DELIVERD.getCode());
  145. }
  146. if (TechProjectStatus.getStatus(log.getState()) == TechProjectStatus.SETTLEMENT){
  147. log.setState(TechProjectStatus.APPRVOVED.getCode());
  148. }
  149. }
  150. res.setData(list);
  151. } else {
  152. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目id"));
  153. }
  154. return res;
  155. }
  156. /**
  157. * update科技项目
  158. *
  159. * @param t
  160. * @param l
  161. * @param recordTimeFormattedDate
  162. * @return
  163. * @throws ParseException
  164. */
  165. @RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
  166. public Result updateTechProject(@Valid InputTechProject techProject, BindingResult bindingResult) {
  167. Result res = new Result();
  168. if (bindingResult.hasErrors()) {
  169. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  170. CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
  171. return res;
  172. }
  173. if (!checkUserLogin(res)) {
  174. return res;
  175. }
  176. User curUser = TokenManager.getUserToken();
  177. if (!checkCertify(res, curUser)) {
  178. return res;
  179. }
  180. if (StringUtils.isBlank(techProject.getId())) {
  181. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
  182. return res;
  183. }
  184. TechProject t = techProjectService.selectByPrimaryKey(techProject.getId());
  185. if (null != t.getUid() && t.getUid().equals(curUser.getId())){
  186. TechProject tp = new TechProject();
  187. BeanUtils.copyProperties(techProject, tp);
  188. res.setData(techProjectService.updateTechProject(tp, null, null));
  189. } else {
  190. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报"));
  191. }
  192. return res;
  193. }
  194. /**
  195. * 科技项目申报材料上传
  196. *
  197. * @param req
  198. * @param sign
  199. * @return
  200. */
  201. @RequestMapping(value = "/upload", method = RequestMethod.POST)
  202. public Result cognizanceFile(HttpServletRequest req, String uid) {
  203. Result res = new Result();
  204. if (!checkUserLogin(res)) {
  205. return res;
  206. }
  207. User curUser = TokenManager.getUserToken();
  208. if (!checkCertify(res, curUser)) {
  209. return res;
  210. }
  211. String sign = "tech_project";
  212. res.setData(handleFiles(res, "/techProject/", true, req, sign, uid));
  213. return res;
  214. }
  215. /**
  216. * 科技项目资料下载
  217. * @param id
  218. * @param response
  219. * @return
  220. */
  221. @RequestMapping(value = "/download", method = RequestMethod.GET)
  222. public Result download(String id, HttpServletResponse response){
  223. Result res = new Result();
  224. if (!checkUserLogin(res)) {
  225. return res;
  226. }
  227. User curUser = TokenManager.getUserToken();
  228. if (!checkCertify(res, curUser)) {
  229. return res;
  230. }
  231. if (StringUtils.isEmpty(id)) {
  232. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
  233. return res;
  234. }
  235. TechProject t = techProjectService.selectByPrimaryKey(id);
  236. if (null == t || !curUser.getId().equals(t.getUid())){
  237. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
  238. return res;
  239. }
  240. downloadFile(response, t.getApprovalDownloadFileName(), t.getApprovalUrl());
  241. return res;
  242. }
  243. }