diff --git a/renren-admin/src/main/java/io/renren/modules/device/service/Impl/TbDeviceApplyServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/device/service/Impl/TbDeviceApplyServiceImpl.java index 05ee2fe3..4fc7d50e 100644 --- a/renren-admin/src/main/java/io/renren/modules/device/service/Impl/TbDeviceApplyServiceImpl.java +++ b/renren-admin/src/main/java/io/renren/modules/device/service/Impl/TbDeviceApplyServiceImpl.java @@ -91,6 +91,10 @@ public class TbDeviceApplyServiceImpl extends CrudServiceImpl dtoList = tbDeviceApplyDao.queryList(params); List result = dtoList.stream().skip((curPage - 1) * limit).limit(limit).collect(Collectors.toList()); + result.stream().forEach(it -> { + it.setTbDeviceDTO(tbDeviceService.get(it.getDeviceId())); + it.setAuditorName(sysUserService.get(it.getAuditor()).getRealName()); + }); return new PageData(result, dtoList.size()); } } diff --git a/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java index 35b3c2ca..3050c8e8 100644 --- a/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java +++ b/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java @@ -478,34 +478,31 @@ public class ResourceServiceImpl extends CrudServiceImpl { - List temp = selectDTOPageSpecilTotal.parallelStream().map(Map.class::cast) - .sorted(Comparator.comparing(x -> { - Map index = (Map) x; - int pingTOp_ = (index.get("pin_top") == null) ? 0 : Integer.parseInt(index.get("pin_top").toString()); - String total = (index.get("total") == null) ? "0" : index.get("total").toString(); - if (pingTOp_ <= 0) { - return 0l + Long.valueOf(total) == 0 ? -1 : Long.valueOf(total); - } - long pingTOp = (index.get("pin_top_time") == null) ? 0 + (Long.valueOf(total) == 0 ? -1 : Long.valueOf(total)) : Long.parseLong(index.get("pin_top_time").toString()) + Long.valueOf(total); - return (pingTOp % 1000) == 0 ? -1 : pingTOp % 1000; - }).reversed() - ).skip((long) (pageNum - 1) * pageSize).limit(pageSize).map(x -> Long.valueOf(x.get("id").toString())).limit(pageSize).collect(Collectors.toList()); + List temp = selectDTOPageSpecilTotal.parallelStream().map(Map.class::cast).sorted(Comparator.comparing(x -> { + Map index = (Map) x; + int pingTOp_ = (index.get("pin_top") == null) ? 0 : Integer.parseInt(index.get("pin_top").toString()); + String total = (index.get("total") == null) ? "0" : index.get("total").toString(); + if (pingTOp_ <= 0) { + return 0l + Long.valueOf(total) == 0 ? -1 : Long.valueOf(total); + } + long pingTOp = (index.get("pin_top_time") == null) ? 0 + (Long.valueOf(total) == 0 ? -1 : Long.valueOf(total)) : Long.parseLong(index.get("pin_top_time").toString()) + Long.valueOf(total); + return (pingTOp % 1000) == 0 ? -1 : pingTOp % 1000; + }).reversed()).skip((long) (pageNum - 1) * pageSize).limit(pageSize).map(x -> Long.valueOf(x.get("id").toString())).limit(pageSize).collect(Collectors.toList()); return temp; }).get(); break; case "ASC": // total 升序 ids = customThreadPool.submit(() -> { - List temp = selectDTOPageSpecilTotal.parallelStream().map(Map.class::cast) - .sorted(Comparator.comparing(x -> { - Map index = (Map) x; - int pingTOp_ = (index.get("pin_top") == null) ? 0 : Integer.parseInt(index.get("pin_top").toString()); - String total = (index.get("total") == null) ? "0" : index.get("total").toString(); - if (pingTOp_ <= 0) { - return 0l + Long.valueOf(total) == 0 ? -1 : Long.valueOf(total); - } - long pingTOp = (index.get("pin_top_time") == null) ? 0 + (Long.valueOf(total) == 0 ? -1 : Long.valueOf(total)) : Long.parseLong(index.get("pin_top_time").toString()) + Long.valueOf(total); - return (pingTOp % 1000) == 0 ? -1 : pingTOp % 1000; - })).skip((pageNum - 1) * pageSize).limit(pageSize).map(x -> Long.valueOf(x.get("id").toString())).limit(pageSize).collect(Collectors.toList()); + List temp = selectDTOPageSpecilTotal.parallelStream().map(Map.class::cast).sorted(Comparator.comparing(x -> { + Map index = (Map) x; + int pingTOp_ = (index.get("pin_top") == null) ? 0 : Integer.parseInt(index.get("pin_top").toString()); + String total = (index.get("total") == null) ? "0" : index.get("total").toString(); + if (pingTOp_ <= 0) { + return 0l + Long.valueOf(total) == 0 ? -1 : Long.valueOf(total); + } + long pingTOp = (index.get("pin_top_time") == null) ? 0 + (Long.valueOf(total) == 0 ? -1 : Long.valueOf(total)) : Long.parseLong(index.get("pin_top_time").toString()) + Long.valueOf(total); + return (pingTOp % 1000) == 0 ? -1 : pingTOp % 1000; + })).skip((pageNum - 1) * pageSize).limit(pageSize).map(x -> Long.valueOf(x.get("id").toString())).limit(pageSize).collect(Collectors.toList()); return temp; }).get(); break; @@ -513,32 +510,30 @@ public class ResourceServiceImpl extends CrudServiceImpl { - ResourceDTO index = (ResourceDTO) x; - int pinTop = index.getPinTop() == null ? 0 : index.getPinTop(); - long index_; - if (pinTop > 0) { - index_ = index.getPinTopTime() == null ? new Date(0).getTime() + (index.getTotal() == null ? -1L : index.getTotal()) : index.getPinTopTime().getTime() + (index.getTotal() == null ? -1L : index.getTotal()); - index_ = index_ % 1000; - } else { - index_ = (index.getTotal() == null ? -1L : (index.getTotal() == 0 ? -1 : index.getTotal())); - } - return index_ == 0 ? -1 : index_; - }).reversed() - ).collect(Collectors.toList()); + ResourceDTO index = (ResourceDTO) x; + int pinTop = index.getPinTop() == null ? 0 : index.getPinTop(); + long index_; + if (pinTop > 0) { + index_ = index.getPinTopTime() == null ? new Date(0).getTime() + (index.getTotal() == null ? -1L : index.getTotal()) : index.getPinTopTime().getTime() + (index.getTotal() == null ? -1L : index.getTotal()); + index_ = index_ % 1000; + } else { + index_ = (index.getTotal() == null ? -1L : (index.getTotal() == 0 ? -1 : index.getTotal())); + } + return index_ == 0 ? -1 : index_; + }).reversed()).collect(Collectors.toList()); } else { resourceDTOS = resourceDTOS.stream().sorted(Comparator.comparing(x -> { - ResourceDTO index = x; - int pinTop = index.getPinTop() == null ? 0 : index.getPinTop(); - long index_; - if (pinTop > 0) { - index_ = index.getPinTopTime() == null ? new Date(0).getTime() + (index.getTotal() == null ? -1L : index.getTotal()) : index.getPinTopTime().getTime() + (index.getTotal() == null ? -1L : index.getTotal()); - index_ = index_ % 1000; - } else { - index_ = (index.getTotal() == null ? -1L : (index.getTotal() == 0 ? -1 : index.getTotal())); - } - return index_ == 0 ? -1 : index_; - }) - ).collect(Collectors.toList()); + ResourceDTO index = x; + int pinTop = index.getPinTop() == null ? 0 : index.getPinTop(); + long index_; + if (pinTop > 0) { + index_ = index.getPinTopTime() == null ? new Date(0).getTime() + (index.getTotal() == null ? -1L : index.getTotal()) : index.getPinTopTime().getTime() + (index.getTotal() == null ? -1L : index.getTotal()); + index_ = index_ % 1000; + } else { + index_ = (index.getTotal() == null ? -1L : (index.getTotal() == 0 ? -1 : index.getTotal())); + } + return index_ == 0 ? -1 : index_; + })).collect(Collectors.toList()); } customThreadPool.shutdown(); } else { // 非总体评价排序时 @@ -693,11 +688,7 @@ public class ResourceServiceImpl extends CrudServiceImpl page = new Page<>(jsonObject.getIntValue("pageNum"), jsonObject.getIntValue("pageSize")); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(StringUtils.isNotBlank(jsonObject.getString("type")), "type", jsonObject.getString("type")) - .eq("del_flag", ResourceEntityDelFlag.NORMAL.getFlag()) - .ne("type", "知识库") - .ne("type", "赋能案例") - .orderByDesc("create_date"); + queryWrapper.eq(StringUtils.isNotBlank(jsonObject.getString("type")), "type", jsonObject.getString("type")).eq("del_flag", ResourceEntityDelFlag.NORMAL.getFlag()).ne("type", "知识库").ne("type", "赋能案例").orderByDesc("create_date"); IPage resourceEntityIPage = resourceDao.selectPage(page, queryWrapper); IPage resourceDTOIPage = new Page<>(); resourceDTOIPage.setPages(resourceEntityIPage.getPages()); @@ -819,24 +810,23 @@ public class ResourceServiceImpl extends CrudServiceImpl>> listMap = typeMapList.stream().collect(Collectors.groupingBy(m -> m.get("type").toString())); //区级要根据行政区划多加一层结构 - List tasks = - listMap.entrySet().stream().filter(index -> !"区级".equals(index.getKey())).map(item -> { - CompletableFuture task = CompletableFuture.runAsync(() -> { - HashMap map = new HashMap<>(); - map.put("type", item.getKey()); - Integer integer = resourceDao.selectTypeCountByDept(item.getKey(), jsonObject.getString("type")); - map.put("total", integer); - item.getValue().forEach(item1 -> { - item1.remove("type"); - item1.remove("regionSort"); - }); - map.put("dataList", item.getValue()); - if (integer != 0) { - resultList.add(map); - } - }, executor); - return task; - }).collect(Collectors.toList()); + List tasks = listMap.entrySet().stream().filter(index -> !"区级".equals(index.getKey())).map(item -> { + CompletableFuture task = CompletableFuture.runAsync(() -> { + HashMap map = new HashMap<>(); + map.put("type", item.getKey()); + Integer integer = resourceDao.selectTypeCountByDept(item.getKey(), jsonObject.getString("type")); + map.put("total", integer); + item.getValue().forEach(item1 -> { + item1.remove("type"); + item1.remove("regionSort"); + }); + map.put("dataList", item.getValue()); + if (integer != 0) { + resultList.add(map); + } + }, executor); + return task; + }).collect(Collectors.toList()); CompletableFuture.allOf(tasks.toArray(new CompletableFuture[tasks.size()])).join(); Optional>> areaList = Optional.ofNullable(listMap.get("区级")); @@ -1115,8 +1105,7 @@ public class ResourceServiceImpl extends CrudServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("instance_id", instanceId) - .eq("approve_status", "通过"); + queryWrapper.eq("instance_id", instanceId).eq("approve_status", "通过"); List applicationEntities = tAbilityApplicationDao.selectList(queryWrapper); ArrayList cameraList = new ArrayList(); applicationEntities.forEach(index -> { @@ -1919,8 +1908,7 @@ public class ResourceServiceImpl extends CrudServiceImpl> typeCountListByDept = resourceDao.selectDeptDetailTypeCountList(params); - Map>> typeCountListMap = typeCountListByDept.stream().collect(Collectors.groupingBy(m -> m.get("deptName").toString())); - ArrayList resultList = new ArrayList<>(); + Map>> typeCountListMap = // 市级部门 + typeCountListByDept.stream().filter(index -> index.get("deptType").toString().equals("2")).collect(Collectors.groupingBy(m -> m.get("dept_id").toString())); + List> resultList = getDeptTemp1(); + resultList.addAll(getDeptTemp2()); Map countMap = new HashMap<>(); - typeCountListMap.forEach((k, v) -> { - HashMap map = new HashMap<>(); - map.put("count", v.stream().mapToInt(it -> Integer.parseInt(it.get("count").toString())).sum()); - map.put("name", k); - v.forEach(item -> { - map.put(item.get("type").toString(), item.get("count")); - if (countMap.containsKey(item.get("type"))) { - countMap.replace(item.get("type").toString(), Integer.parseInt(item.get("count").toString()) + countMap.get(item.get("type"))); - } else { - countMap.put(item.get("type").toString(), Integer.parseInt(item.get("count").toString())); - } - }); - resultList.add(map); - }); + resultList = resultList.stream().map(index -> { + if (typeCountListMap.keySet().contains(index.get("dept_id").toString())) { // 该部门存在上架信息 + index.put("count", typeCountListMap.get(index.get("dept_id").toString()).stream().mapToInt(it -> Integer.parseInt(it.get("count").toString())).sum()); + typeCountListMap.get(index.get("dept_id").toString()).stream().forEach(count -> { + index.put(count.get("type").toString(), count.get("count")); + if (countMap.containsKey(count.get("type"))) { + countMap.replace(count.get("type").toString(), Integer.parseInt(count.get("count").toString()) + countMap.get(count.get("type"))); + } else { + countMap.put(count.get("type").toString(), Integer.parseInt(count.get("count").toString())); + } + }); + } + return index; + }).collect(Collectors.toList()); + Map>> typeCountListMap1 = // 区级部门 + typeCountListByDept.stream().filter(index -> index.get("deptType").toString().equals("3")).collect(Collectors.groupingBy(m -> m.get("district").toString())); + resultList = resultList.stream().map(index -> { + if (typeCountListMap1.keySet().contains(index.get("dept_id").toString())) { // 该部门存在上架信息 + index.put("count", typeCountListMap1.get(index.get("dept_id").toString()).stream().mapToInt(it -> Integer.parseInt(it.get("count").toString())).sum()); + typeCountListMap1.get(index.get("dept_id").toString()).stream().forEach(count -> { + index.put(count.get("type").toString(), Integer.parseInt(count.get("count").toString()) + Integer.parseInt(index.getOrDefault(count.get("type").toString(), "0").toString())); + if (countMap.containsKey(count.get("type"))) { + countMap.replace(count.get("type").toString(), Integer.parseInt(count.get("count").toString()) + countMap.get(count.get("type"))); + } else { + countMap.put(count.get("type").toString(), Integer.parseInt(count.get("count").toString())); + } + }); + } + return index; + }).collect(Collectors.toList()); +// typeCountListMap.forEach((k, v) -> { +// HashMap map = new HashMap<>(); +// map.put("count", v.stream().mapToInt(it -> Integer.parseInt(it.get("count").toString())).sum()); +// map.put("name", k); +// v.forEach(item -> { +// map.put(item.get("type").toString(), item.get("count")); +// if (countMap.containsKey(item.get("type"))) { +// countMap.replace(item.get("type").toString(), Integer.parseInt(item.get("count").toString()) + countMap.get(item.get("type"))); +// } else { +// countMap.put(item.get("type").toString(), Integer.parseInt(item.get("count").toString())); +// } +// }); +// resultList.add(map); +// }); + Integer total = 0; for (Integer count : countMap.values()) { total += count; @@ -2098,6 +2119,56 @@ public class ResourceServiceImpl extends CrudServiceImpl> getDeptTemp1() { + List> resultList; + List> maps = jdbcTemplate.queryForList("SELECT id,`name`,type,pid,district FROM sys_dept WHERE type = 2 ORDER BY sys_dept.sort;"); + resultList = maps.stream().map(index -> { + HashMap map = new HashMap<>(); + map.put("count", 0); // + map.put("name", index.get("name").toString()); + map.put("dept_id", index.get("id").toString()); + map.put("yyzy", "0"); + map.put("znsf", "0"); + map.put("tcfw", "0"); + map.put("kfzj", "0"); + map.put("ywzj", "0"); + map.put("jcss", "0"); + map.put("zsk", "0"); + map.put("sjzy", "0"); + return map; + }).collect(Collectors.toList()); + return resultList; + } + + /** + * 获取区的初级构造 + * + * @return + */ + private List> getDeptTemp2() { + List> resultList; + List> maps = jdbcTemplate.queryForList("SELECT id,`name` FROM sys_region WHERE tree_level = 3 AND leaf = 0 ORDER BY sort;"); + resultList = maps.stream().map(index -> { + HashMap map = new HashMap<>(); + map.put("count", 0); // + map.put("name", index.get("name").toString()); + map.put("dept_id", index.get("id").toString()); + map.put("yyzy", "0"); + map.put("znsf", "0"); + map.put("tcfw", "0"); + map.put("kfzj", "0"); + map.put("ywzj", "0"); + map.put("jcss", "0"); + map.put("zsk", "0"); + map.put("sjzy", "0"); + return map; + }).collect(Collectors.toList()); + return resultList; + } + @Override public Object selectCensusResourceTable(Map params) { return resourceDao.selectCensusResourceTable(params); diff --git a/renren-admin/src/main/resources/mapper/device/TbDeviceDao.xml b/renren-admin/src/main/resources/mapper/device/TbDeviceDao.xml index a82cda63..0815b9dd 100644 --- a/renren-admin/src/main/resources/mapper/device/TbDeviceDao.xml +++ b/renren-admin/src/main/resources/mapper/device/TbDeviceDao.xml @@ -18,7 +18,7 @@ @@ -759,7 +759,8 @@ ( SELECT DISTINCT sd.id AS "deptId", - ( CASE sd.type WHEN 1 THEN '省级' WHEN 2 THEN '市级' WHEN 3 THEN '区级' WHEN 4 THEN '企业' ELSE '其他' END ) AS "type" + ( CASE sd.type WHEN 1 THEN '省级' WHEN 2 THEN '市级' WHEN 3 THEN '区级' WHEN 4 THEN '企业' ELSE '其他' END ) AS + "type" FROM sys_dept sd WHERE @@ -1790,6 +1791,9 @@ SELECT COUNT( tdr.id ) AS "count", sd.NAME AS "deptName", + sd.id AS "dept_id", + sd.type AS "deptType", + sd.district AS "district", (CASE tdr.type WHEN '应用资源' THEN 'yyzy' WHEN '智能算法' THEN 'znsf' @@ -1834,8 +1838,8 @@