UserStatisicsController.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. package com.dragoninfo.dcuc.authweb.restcontroller.statisics;
  2. import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
  3. import com.dragoninfo.dcuc.authweb.restcontroller.statisics.vo.OrgTreeNodeVo;
  4. import com.dragoninfo.dcuc.org.facade.IOrgInfoFacade;
  5. import com.dragoninfo.dcuc.org.vo.OrgTreeNode;
  6. import com.dragoninfo.dcuc.user.user.enumresources.UserTypeEnum;
  7. import com.dragoninfo.dcuc.user.user.facade.IUserInfoFacade;
  8. import com.dragonsoft.duceap.commons.util.string.StringUtils;
  9. import com.dragonsoft.duceap.web.controller.BaseController;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiImplicitParam;
  12. import io.swagger.annotations.ApiImplicitParams;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.GetMapping;
  16. import org.springframework.web.bind.annotation.PathVariable;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. /**
  22. * Created by liws on 2018/9/21.
  23. */
  24. @Api(tags = {"用户统计"})
  25. @RestController
  26. @RequestMapping(value = "usersvr")
  27. public class UserStatisicsController extends BaseController {
  28. @Autowired
  29. private IUserInfoFacade iUserInfoFacade;
  30. @Autowired
  31. private IOrgInfoFacade iOrgInfoFacade;
  32. @Autowired
  33. private DcucAuthWebConfig dcucAuthWebConfig;
  34. /*
  35. @ApiOperation(value = "获取用户统计列表")
  36. @ApiImplicitParam(name = "searchable", value = "查询条件")
  37. @PostMapping(value = "statisics/search")
  38. public Result list(Searchable searchable) {
  39. List<Map<String, String>> result = new ArrayList<Map<String, String>>();
  40. searchable.addSearchFilter("ranged", SearchOperator.eq,dcucWebConfig.getStatisticsRange());
  41. SearchDTO searchDTO = searchable.toSearchDTO();
  42. Page<AreaInfo> page = iOrgInfoFacade.areaMap(searchDTO);
  43. List<AreaInfo> areas = page.getContent();
  44. for (AreaInfo area : areas) {
  45. String areacode = area.getCode().substring(0, 2);
  46. Map<String, String> countMap = iUserInfoFacade.countUserByArea(areacode, true, true);
  47. countMap.put("area", area.getName());
  48. result.add(countMap);
  49. }
  50. if (page.getSize() * Integer.parseInt(searchDTO.getPage()) > page.getTotalElements()) {
  51. Map<String, String> countMap = iUserInfoFacade.countUserByArea(null, true, true);
  52. countMap.put("area", "总计");
  53. result.add(countMap);
  54. }
  55. return Result.success(result);
  56. }
  57. */
  58. /**
  59. * 完整树
  60. *
  61. * @param id 节点机构id
  62. * @return
  63. */
  64. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "机构ID", required = true
  65. , example = "40288a8b699fc2500169a33b20540000")})
  66. @ApiOperation(value = "获取完整树下各用户数量")
  67. @GetMapping(value = "statisics/{id}")
  68. public List<OrgTreeNodeVo> treeGrid(@PathVariable String id) {
  69. if (StringUtils.isEmpty(id) || id.equals("null")) {
  70. id = iOrgInfoFacade.getRootOrgId();
  71. OrgTreeNode orgTreeNode = iOrgInfoFacade.getOrgTreeNode(id);
  72. int orgCount = iOrgInfoFacade.allOrgNum();
  73. int userCount = iUserInfoFacade.allUserNum();
  74. orgTreeNode.setCount(orgCount);
  75. int policeNum = iUserInfoFacade.allUserTypeNum(UserTypeEnum.POLICE.getValue());
  76. orgTreeNode.setPoliceNum(policeNum);
  77. int helperNum = iUserInfoFacade.allUserTypeNum(UserTypeEnum.HELPER.getValue());
  78. orgTreeNode.setAuxiliaryNum(helperNum);
  79. int externalNum = iUserInfoFacade.allUserTypeNum(UserTypeEnum.EXTERNAL.getValue());
  80. orgTreeNode.setExternalNum(externalNum);
  81. orgTreeNode.setUserNum(userCount);
  82. List<OrgTreeNode> resultList = new ArrayList<OrgTreeNode>();
  83. resultList.add(orgTreeNode);
  84. List<OrgTreeNodeVo> orgTreeNodeVos = this.treeNodeToVo(resultList);
  85. return orgTreeNodeVos;
  86. } else {
  87. List<OrgTreeNode> resultList = iOrgInfoFacade.countChildOrgTreeNode(id);
  88. List<OrgTreeNodeVo> orgTreeNodeVos = this.treeNodeToVo(resultList);
  89. return orgTreeNodeVos;
  90. }
  91. }
  92. //
  93. // @RequestMapping(value = "provinces")
  94. // @ResponseBody
  95. // public List provinces() {
  96. // Searchable searchable = Searchable.newSearchable();
  97. // searchable.addSearchFilter("ranged",SearchOperator.eq,dcucWebConfig.getStatisticsRange());
  98. // SearchDTO searchDTO = searchable.toSearchDTO();
  99. // searchDTO.setSize("100");
  100. // searchDTO.setPage("1");
  101. // List<Map<String, String>> result = new ArrayList<Map<String, String>>();
  102. // Page<AreaInfo> page = iOrgInfoFacade.areaMap(searchDTO);
  103. // List<AreaInfo> areas = page.getContent();
  104. // for (AreaInfo area : areas) {
  105. // Map<String, String> countMap = null;
  106. // if (dcucWebConfig.getStatisticsRange().equals(UserAreaEnum.HZ_AREA.getValue())) {
  107. // String areacode = area.getCode().substring(0, 2);
  108. // countMap = iUserInfoFacade.countUserByArea(areacode, false, true);
  109. // } else if (dcucWebConfig.getStatisticsRange().equals(UserAreaEnum.GD_AREA.getValue())) {
  110. // String areacode = area.getCode().substring(0, 4);
  111. // countMap = iUserInfoFacade.countUserByArea(areacode, false, false);
  112. // }
  113. // countMap.put("area", area.getName());
  114. // result.add(countMap);
  115. // }
  116. // return result;
  117. // }
  118. //
  119. // /**
  120. // * 导出列表
  121. // *
  122. // * @param searchDTO
  123. // * @param request
  124. // */
  125. // @RequestMapping(value = "excel")
  126. // public void listExport(Searchable searchable, HttpServletRequest request, HttpServletResponse response) {
  127. // try {
  128. // searchable.addSearchFilter("ranged",SearchOperator.eq,dcucWebConfig.getStatisticsRange());
  129. // SearchDTO searchDTO = searchable.toSearchDTO();
  130. // searchDTO.setSize(searchDTO.getTotal());
  131. // searchDTO.setPage("1");
  132. // List<Map<String, String>> result = new ArrayList<Map<String, String>>();
  133. // Page<AreaInfo> page = iOrgInfoFacade.areaMap(searchDTO);
  134. // List<AreaInfo> areas = page.getContent();
  135. // for (AreaInfo area : areas) {
  136. // String areacode = area.getCode().substring(0, 2);
  137. // Map<String, String> countMap = iUserInfoFacade.countUserByArea(areacode, true, true);
  138. // countMap.put("area", area.getName());
  139. // result.add(countMap);
  140. // }
  141. // Map<String, String> countMap = iUserInfoFacade.countUserByArea(null, true, true);
  142. // countMap.put("area", "总计");
  143. // result.add(countMap);
  144. // exportExcel("全国治安用户建设情况", result, Searchable.toSearchable(searchDTO).getMetaData(), request, response);
  145. // } catch (IOException e) {
  146. // logger.error(e.getMessage(), e);
  147. // throw new ApplicationException(300, "导出失败", e);
  148. // }
  149. // }
  150. /**
  151. * 组装树节点
  152. *
  153. * @param nodeList
  154. * @return
  155. */
  156. private List<OrgTreeNodeVo> treeNodeToVo(List<OrgTreeNode> nodeList) {
  157. List<OrgTreeNodeVo> result = new ArrayList<>();
  158. for (OrgTreeNode orgTreeNode : nodeList) {
  159. OrgTreeNodeVo orgTreeNodeVo = new OrgTreeNodeVo();
  160. orgTreeNodeVo.setId(orgTreeNode.getValue());
  161. orgTreeNodeVo.setCode( orgTreeNode.getCode());
  162. orgTreeNodeVo.setName(orgTreeNode.getLabel());
  163. orgTreeNodeVo.setPid(orgTreeNode.getPid());
  164. orgTreeNodeVo.setOrgNum(orgTreeNode.getCount());
  165. orgTreeNodeVo.setUserNum(orgTreeNode.getUserNum());
  166. orgTreeNodeVo.setPoliceUserCount(orgTreeNode.getPoliceNum());
  167. orgTreeNodeVo.setAuxiliUserCount(orgTreeNode.getAuxiliaryNum());
  168. orgTreeNodeVo.setExtcerUserCount(orgTreeNode.getExternalNum());
  169. if (orgTreeNode.getChildIds() != null && orgTreeNode.getChildIds().size() > 0) {
  170. orgTreeNodeVo.setParent(true);
  171. } else {
  172. orgTreeNodeVo.setParent(false);
  173. }
  174. result.add(orgTreeNodeVo);
  175. }
  176. return result;
  177. }
  178. }