CrowdController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. package com.iden.bms.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.iden.bms.service.CrowdService;
  4. import com.iden.bms.service.FaceIdenService;
  5. import com.iden.bms.service.PersonService;
  6. import com.iden.common.annotation.Permission;
  7. import com.iden.common.exception.BDException;
  8. import com.iden.common.logaspect.LogAnnotation;
  9. import com.iden.common.logaspect.OperateType;
  10. import com.iden.common.util.PageResult;
  11. import com.iden.common.util.Result;
  12. import com.iden.common.util.WebPageUtils;
  13. import com.iden.common.vo.CrowdVO;
  14. import com.iden.common.vo.PageReqVO;
  15. import com.iden.common.vo.PersonVO;
  16. import com.iden.common.vo.UserLoginedConvertVO;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiImplicitParam;
  19. import io.swagger.annotations.ApiImplicitParams;
  20. import io.swagger.annotations.ApiOperation;
  21. import lombok.extern.slf4j.Slf4j;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.web.bind.annotation.*;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import javax.servlet.http.HttpServletRequest;
  26. import javax.servlet.http.HttpServletResponse;
  27. import java.util.List;
  28. /**
  29. * @Author: lilt
  30. * @Date: 2021/5/26
  31. * @Desc:
  32. */
  33. @RestController
  34. @Api(value = "CrowdController", tags = { "人群管理" })
  35. @Slf4j
  36. @RequestMapping("/bms/crowd")
  37. @Permission
  38. public class CrowdController {
  39. @Autowired
  40. private CrowdService crowdService;
  41. @Autowired
  42. private PersonService personService;
  43. @Autowired
  44. private FaceIdenService faceIdenService;
  45. @GetMapping("/listCommunity4Select")
  46. @ApiOperation(value = "人群下拉列表 ")
  47. public Result<List<CrowdVO>> listCommunity4Select(HttpServletRequest request, @RequestHeader(value = "token") String token){
  48. try {
  49. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  50. List<CrowdVO> datas = this.crowdService.lisCrowd4Select(loginUser);
  51. return Result.success(datas);
  52. }catch (BDException e) {
  53. log.error("人群下拉列表查询-分页列表出现异常",e);
  54. return PageResult.error(e.getMessage());
  55. } catch (Exception e) {
  56. log.error("人群管理: 人群下拉列表查询出现异常",e);
  57. return PageResult.error( "获取列表失败");
  58. }
  59. }
  60. @GetMapping("/listCrowd")
  61. @ApiOperation(value = "人群列表分页 ")
  62. @ApiImplicitParams(value = {
  63. @ApiImplicitParam(paramType = "query", name = "name", value = "人群名称")
  64. })
  65. public PageResult<List<CrowdVO>> listCrowd(HttpServletRequest request, @RequestHeader(value = "token") String token,
  66. @RequestParam(value = "name", required = false) String name,
  67. PageReqVO pageReqVo){
  68. try {
  69. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  70. IPage<CrowdVO> pageResponse = this.crowdService.listCrowd(name,loginUser ,pageReqVo);
  71. return PageResult.success(pageResponse.getRecords(),pageResponse.getCurrent(),pageResponse.getSize(),pageResponse.getTotal());
  72. }catch (BDException e) {
  73. log.error("人群列表查询-分页列表出现异常",e);
  74. return PageResult.error(e.getMessage());
  75. } catch (Exception e) {
  76. log.error("人群管理: 人群列表查询出现异常",e);
  77. return PageResult.error( "获取列表失败");
  78. }
  79. }
  80. /**
  81. * 下载模板
  82. * @param
  83. * @return
  84. */
  85. @ApiOperation(value = "下载模板")
  86. @GetMapping({"/downloadFormwork"})
  87. @LogAnnotation(
  88. type = OperateType.EXPORT,
  89. moduleName = "下载模板",
  90. description = "下载模板"
  91. )
  92. public void downloadFormwork(HttpServletRequest request,@RequestHeader(name = "token", required = true) String token,
  93. HttpServletResponse response) {
  94. try {
  95. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  96. this.personService.downloadFormwork(loginUser,response);
  97. } catch (BDException e) {
  98. log.error("下载模板出现异常",e);
  99. } catch (Exception e) {
  100. log.error("小区管理: 下载模板出现异常",e);
  101. }
  102. }
  103. @ApiOperation(value = "导入Excel")
  104. @PostMapping(value = "/importWithExcel", headers = "content-type=multipart/form-data")
  105. public Result<List<Long>> importWithExcel(HttpServletRequest request, @RequestHeader(value = "token") String token,
  106. @RequestParam(value = "file") MultipartFile multipartFile) {
  107. try {
  108. List<Long> personIdList = personService.importWithExcel(multipartFile,true);
  109. return Result.success("导入成功!",personIdList);
  110. } catch (BDException e) {
  111. log.error("导入人员列表出现异常",e);
  112. return Result.error(e.getMessage());
  113. } catch (Exception e) {
  114. log.error("人员管理: 导入人员列表出现异常",e);
  115. return Result.error("导入人员失败!");
  116. }
  117. }
  118. @PostMapping("/addCrowd")
  119. @ApiOperation(value = "新增人群")
  120. @LogAnnotation(
  121. type = OperateType.ADD,
  122. moduleName = "新增人群",
  123. description = "新增人群"
  124. )
  125. public Result<Object> addCrowd(HttpServletRequest request, @RequestHeader("token") String token,
  126. @RequestBody CrowdVO vo){
  127. try {
  128. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  129. int flag = this.crowdService.createCrowd(vo,loginUser);
  130. if (flag == 1) {
  131. return Result.error("名称已存在!");
  132. } if (flag == 2) {
  133. return Result.error("编码已存在!");
  134. } if (flag == 3) {
  135. return Result.error("人员列表不能为空!");
  136. } else if (flag == 0) {
  137. return Result.success("新增成功!");
  138. } else {
  139. return Result.error("新增失败!");
  140. }
  141. }catch (BDException e) {
  142. log.error("新增人群-出现异常",e);
  143. return Result.error(e.getMessage());
  144. } catch (Exception e) {
  145. log.error("人群管理: 新增人群出现异常",e);
  146. return Result.error("新增失败!");
  147. }
  148. }
  149. @PostMapping("/updateCrowd")
  150. @ApiOperation(value = "修改人群")
  151. @LogAnnotation(
  152. type = OperateType.MODIFY,
  153. moduleName = "修改人群",
  154. description = "修改人群"
  155. )
  156. public Result<Object> updateCrowd(HttpServletRequest request,@RequestHeader("token") String token,
  157. @RequestBody CrowdVO vo){
  158. try {
  159. this.crowdService.updateCrowd(vo);
  160. return Result.success("修改成功!");
  161. }catch (BDException e) {
  162. log.error("修改人群-出现异常",e);
  163. return Result.error(e.getMessage());
  164. } catch (Exception e) {
  165. log.error("人群管理: 修改人群出现异常",e);
  166. return Result.error("修改失败!");
  167. }
  168. }
  169. @GetMapping("/getCrowdInfo/{id}")
  170. @ApiOperation(value = "人群详情")
  171. public Result<CrowdVO> getCrowdInfo(HttpServletRequest request, @RequestHeader("token") String token, @PathVariable("id") Long id){
  172. CrowdVO vo = this.crowdService.getCrowdById(id);
  173. return Result.success("查询成功!",vo);
  174. }
  175. @PostMapping("/deleteCrowd/{id}")
  176. @ApiOperation(value = "删除人群")
  177. @LogAnnotation(
  178. type = OperateType.REMOVE,
  179. moduleName = "删除人群",
  180. description = "删除人群"
  181. )
  182. public Result<Object> deleteCrowd(HttpServletRequest request,@RequestHeader("token") String token,
  183. @PathVariable("id") Long id){
  184. try {
  185. if( this.crowdService.deleteById(id)){
  186. return Result.success("删除成功!");
  187. } else {
  188. return Result.error("人群里有人员,请先删除人员,再删除人群!");
  189. }
  190. } catch (Exception e) {
  191. log.error("人群管理: 删除出现异常",e);
  192. return Result.error("删除失败!");
  193. }
  194. }
  195. @GetMapping("/listPersonByCrowd")
  196. @ApiOperation(value = "根据人群查询人员列表分页 ")
  197. @ApiImplicitParams(value = {
  198. @ApiImplicitParam(paramType = "query", name = "crowdId", value = "人群id", required = true)
  199. })
  200. public PageResult<List<PersonVO>> listPersonByCrowd(HttpServletRequest request, @RequestHeader(value = "token") String token,
  201. @RequestParam(value = "crowdId", required = true) Long crowdId,
  202. PageReqVO pageReqVo){
  203. try {
  204. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  205. IPage<PersonVO> pageResponse = this.crowdService.listPersonByCrowd(crowdId,loginUser ,pageReqVo);
  206. return PageResult.success(pageResponse.getRecords(),pageResponse.getCurrent(),pageResponse.getSize(),pageResponse.getTotal());
  207. }catch (BDException e) {
  208. log.error("人员列表查询-根据人群查询人员列表出现异常",e);
  209. return PageResult.error(e.getMessage());
  210. } catch (Exception e) {
  211. log.error("人群管理: 根据人群查询人员列表查询出现异常",e);
  212. return PageResult.error( "获取列表失败");
  213. }
  214. }
  215. /**
  216. * 导出人群中人员列表Excel
  217. * @param
  218. * @return
  219. */
  220. @ApiOperation(value = "导出人群中人员列表")
  221. @ApiImplicitParams(value = {
  222. @ApiImplicitParam(paramType = "query", name = "crowdId", value = "人群id", required = true)
  223. })
  224. @GetMapping({"/exportToExcel"})
  225. @LogAnnotation(
  226. type = OperateType.EXPORT,
  227. moduleName = "导出人群中人员列表",
  228. description = "导出人群中人员列表"
  229. )
  230. public void exportToExcel(HttpServletRequest request,@RequestHeader(name = "token", required = true) String token,
  231. @RequestParam(value = "crowdId", required = true) Long crowdId,
  232. HttpServletResponse response) {
  233. try {
  234. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  235. this.crowdService.exportToExcel(crowdId,loginUser, response);
  236. } catch (BDException e) {
  237. log.error("导出人群中人员列表出现异常",e);
  238. } catch (Exception e) {
  239. log.error("人群管理: 导出人群中人员列表出现异常",e);
  240. }
  241. }
  242. @PostMapping("/deletePersonFromCrowd")
  243. @ApiOperation(value = "从人群中删除人员")
  244. @ApiImplicitParams(value = {
  245. @ApiImplicitParam(paramType = "query", name = "Long", value = "crowdId",required = true)
  246. })
  247. @LogAnnotation(
  248. type = OperateType.REMOVE,
  249. moduleName = "删除人员",
  250. description = "删除人员"
  251. )
  252. public Result<Object> deletePerson(HttpServletRequest request,@RequestHeader("token") String token,
  253. @PathVariable("id") Long id,
  254. @RequestParam(value = "crowdId", required = true) Long crowdId){
  255. try {
  256. int flag =this.crowdService.deletePersonFromCrowd(id,crowdId);
  257. if(flag == 1){
  258. faceIdenService.reloadFaceDataset();
  259. }
  260. return Result.success("删除成功!");
  261. } catch (BDException e) {
  262. log.error("人员删除-出现异常",e);
  263. return Result.error(e.getMessage());
  264. } catch (Exception e) {
  265. log.error("人员管理: 删除出现异常",e);
  266. return Result.error("删除失败!");
  267. }
  268. }
  269. }