springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -15,6 +15,11 @@ <dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-core</artifactId> <version>4.0.7</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/BcDictionaryConstants.java
@@ -45,5 +45,10 @@ */ public static final String PROFESSION = "profession"; /** * 政治面貌 */ public static final String POLITICAL_OUTLOOK = "political_outlook"; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ActWorkCountVO.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author xyh * @date 2021/6/16 18:03 */ @ApiModel("工作情况汇报详细") @Data public class ActWorkCountVO { @ApiModelProperty("名称") private String name; @ApiModelProperty("数量") private Integer num; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/CarouselInfoVO.java
New file @@ -0,0 +1,26 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @author xyh * @date 2021/6/16 10:17 */ @ApiModel("轮播信息") @Data public class CarouselInfoVO implements Serializable { private static final long serialVersionUID = -2716493758092750696L; @ApiModelProperty(value = "id") private Long id; @ApiModelProperty(value = "类型名称") private String typeName; @ApiModelProperty(value = "内容") private String content; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActActivityScreenVO.java
New file @@ -0,0 +1,44 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/16 11:01 */ @ApiModel("大屏-人口-社区活动") @Data public class ComActActivityScreenVO implements Serializable { private static final long serialVersionUID = 8892577774827785315L; @ApiModelProperty("微心愿轮播图") private List<String> imgs; @ApiModelProperty("总共发起") private Long totalNum; @ApiModelProperty(value = "本月新增") private Long currentNum; @ApiModelProperty(value = "居民活动") private Long commonNum; @ApiModelProperty(value = "居民活动参与人数") private Long commonPeopleNum; @ApiModelProperty(value = "志愿者活动") private Long volunteerNum; @ApiModelProperty(value = "志愿者活动参与人数") private Long volunteerPeopleNum; @ApiModelProperty("活动轮播列表") private List<CarouselInfoVO> list; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActDiscussScreenVO.java
New file @@ -0,0 +1,38 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/16 13:16 */ @ApiModel("大屏-人口-一起议") @Data public class ComActDiscussScreenVO implements Serializable { @ApiModelProperty("总共发起") private Long totalNum; @ApiModelProperty("本月新增") private Long currentNum; @ApiModelProperty("图文") private Long imgNum; @ApiModelProperty("图文参与人数") private Long imgPeopleNum; @ApiModelProperty("投票") private Long voteNum; @ApiModelProperty("投票参与人数") private Long votePeopleNum; @ApiModelProperty("一起议轮播列表") private List<CarouselInfoVO> list; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActEasyPhotoScreenVO.java
New file @@ -0,0 +1,44 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/16 16:05 */ @ApiModel("大屏-人口-随手拍") @Data public class ComActEasyPhotoScreenVO implements Serializable { @ApiModelProperty("本月新增") private Long currentNum; @ApiModelProperty("已处理随手拍") private List<EasyPhotoPointVO> deal; @ApiModelProperty("已公示随手拍") private List<EasyPhotoPointVO> pub; @ApiModelProperty("已审核随手拍") private List<EasyPhotoPointVO> approved; @ApiModelProperty("未处理") private Long noneDeal; @ApiModelProperty("公示比例") private Long pubPoint; @ApiModelProperty("平均耗时") private Long dealTime; @ApiModelProperty("随手拍线形列表") private List<EastPhotoVO> list; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActMicroWishScreenVO.java
New file @@ -0,0 +1,29 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/16 10:14 */ @ApiModel("大屏-工作-心愿单") @Data public class ComActMicroWishScreenVO implements Serializable { @ApiModelProperty("微心愿轮播图") private List<String> imgs; @ApiModelProperty(value = "本月新增") private Long currentNum; @ApiModelProperty(value = "等待实现") private Long willNum; @ApiModelProperty(value = "累计实现") private Long completedNum; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActNeighborCircleScreenVO.java
New file @@ -0,0 +1,42 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/15 14:36 */ @Data @ApiModel("大屏-工作-邻里圈") public class ComActNeighborCircleScreenVO implements Serializable { private static final long serialVersionUID = 8407169650740659312L; @ApiModelProperty(value = "邻里圈图片轮播") private List<String> imgs; @ApiModelProperty(value = "邻里圈轮播列表") private List<CarouselInfoVO> list; @ApiModelProperty(value = "本月新增") private Long currentNum; @ApiModelProperty(value = "总发表") private Long totalNum; @ApiModelProperty(value = "点赞量") private Long fabulousNum; @ApiModelProperty(value = "评论量") private Long commentNum; @ApiModelProperty(value = "分享量") private Long sharedNum; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationCultureVO.java
New file @@ -0,0 +1,24 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @author xyh * @date 2021/6/15 14:36 */ @Data @ApiModel("实有人口文化程度统计") public class ComActPopulationCultureVO implements Serializable { @ApiModelProperty(value = "文化程度") private String level; @ApiModelProperty(value = "人口数") private Long num; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java
New file @@ -0,0 +1,50 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/15 14:36 */ @Data @ApiModel("大屏-人口") public class ComActPopulationScreenVO implements Serializable { @ApiModelProperty(value = "总人口数") private Long totalNum; @ApiModelProperty(value = "户籍人口数") private Long localNum; @ApiModelProperty(value = "流动人口数") private Long outNum; @ApiModelProperty(value = "特殊人口数") private Long specialNum; @ApiModelProperty(value = "已使用社区同人口数") private Long usedCommunityNum; @ApiModelProperty(value = "男性数量") private Long manNum; @ApiModelProperty(value = "男性占比") private Integer manPoint; @ApiModelProperty(value = "女性数量") private Long woman; @ApiModelProperty(value = "女性占比") private Integer womanPoint; @ApiModelProperty("实有人口年龄结构") private List<ComMngPopulationAgeVO> ageGroup; @ApiModelProperty("实有人口文化程度统计") private List<ComActPopulationCultureVO> cultureGroup; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActWorkScreenVO.java
New file @@ -0,0 +1,35 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author xyh * @date 2021/6/16 18:00 */ @ApiModel("大屏-工作-工作情况汇报") @Data public class ComActWorkScreenVO implements Serializable { private static final long serialVersionUID = 5969567628890256231L; @ApiModelProperty("平均耗时") private String avgTime; @ApiModelProperty("每天完成") private String everyDayNum; @ApiModelProperty("总完成度") private Integer totalCompletedPoint; @ApiModelProperty("已完成") private List<ActWorkCountVO> completetPoint; @ApiModelProperty("未完成") private List<ActWorkCountVO> nonePoint; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComMngPopulationAgeVO.java
New file @@ -0,0 +1,24 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @author xyh * @date 2021/6/15 16:42 */ @Data @ApiModel("年龄段结构统计") public class ComMngPopulationAgeVO implements Serializable { private static final long serialVersionUID = 1562369303787355841L; @ApiModelProperty("年龄段") private String group; @ApiModelProperty("数量") private Long num; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComPbWorkScreenVO.java
New file @@ -0,0 +1,33 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; import java.util.Map; /** * @author xyh * @date 2021/6/16 14:38 */ @ApiModel("大屏-人口-党建工作") @Data public class ComPbWorkScreenVO implements Serializable { @ApiModelProperty("总共发起") private Long totalNum; @ApiModelProperty("本月新增") private Long currentNum; @ApiModelProperty("党建宣传") private Long dynNum; @ApiModelProperty("党员活动") private Long activityNum; @ApiModelProperty("党建工作柱状图列表数据") private List<PbWorkVO> list; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoVO.java
New file @@ -0,0 +1,28 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @author xyh * @date 2021/6/16 14:45 */ @Data @ApiModel("随手拍线型数据") public class EastPhotoVO implements Serializable { @ApiModelProperty("月份") private String month; @ApiModelProperty("随手拍数量") private Long total; @ApiModelProperty("新增随手拍数量") private Long adds; @ApiModelProperty("处理手拍数量") private Long deal; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoDataVO.java
New file @@ -0,0 +1,27 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author xyh * @date 2021/6/16 16:27 */ @ApiModel("随手拍线形图") @Data public class EasyPhotoDataVO { @ApiModelProperty("月份") private String month; @ApiModelProperty("随手拍数量") private Long total; @ApiModelProperty("新增随手拍") private Long adds; @ApiModelProperty("处理随手拍") private Long deal; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoPointVO.java
New file @@ -0,0 +1,20 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author xyh * @date 2021/6/16 16:21 */ @ApiModel("随手拍饼状图") @Data public class EasyPhotoPointVO { @ApiModelProperty("类型名") private String typeName; @ApiModelProperty("占比") private Integer point; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PbWorkVO.java
New file @@ -0,0 +1,30 @@ package com.panzhihua.common.model.vos.screen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @author xyh * @date 2021/6/16 14:45 */ @Data @ApiModel("党建宣传、党员活动") public class PbWorkVO implements Serializable { @ApiModelProperty("月份") private String month; @ApiModelProperty("党建宣传") private Long dyn; @ApiModelProperty("党员活动") private Long activity; @ApiModelProperty(hidden = true) private String start; @ApiModelProperty(hidden = true) private String end; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2757,6 +2757,69 @@ R saveBatchKeyPerson(@RequestBody List<KeyPersonInfoDTO> list); /** * 大屏统计实有人口 * @param communityId * @return */ @GetMapping("/screen/population/statistic") R statistic(@RequestParam("communityId")Long communityId); /** * 大屏统计邻里圈 * @param communityId * @return */ @GetMapping("/screen/work/neighborCircle") R statisticNeighborCircle(@RequestParam("communityId") Long communityId); /** * 大屏统计邻里圈 */ @GetMapping("/screen/work/wish") R wish(@RequestParam("communityId") Long communityId); /** * 大屏统计社区-活动 * @param communityId * @return */ @GetMapping("/screen/work/activity") R activity(@RequestParam("communityId") Long communityId); /** * 大屏统计一起议 * @param communityId * @return */ @GetMapping("/screen/work/discuss") R discuss(@RequestParam("communityId") Long communityId); /** * 大屏统计党建工作 * @param communityId * @return */ @GetMapping("/screen/work/pbWork") R pbWork(@RequestParam("communityId")Long communityId); /** * 大屏统计随手拍 * @param communityId * @return */ @GetMapping("/screen/work/easyPhoto") R easyPhoto(@RequestParam("communityId")Long communityId); /** * 大屏统计工作情况 * @param communityId * @return */ @GetMapping("/screen/work/workCount") R workCount(@RequestParam("communityId")Long communityId); /** * description 批量保存残疾人人员信息 * * @param list 疾人信息列表 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -616,6 +616,13 @@ } public static Date getDateM(Date start, int min) { Calendar date1 = Calendar.getInstance(); date1.setTime(start); date1.add(12, min); return date1.getTime(); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Snowflake.java
@@ -1,141 +1,15 @@ package com.panzhihua.common.utlis; import cn.hutool.core.util.IdUtil; /** * @author xyh * @date 2021/6/10 15:29 */ public class Snowflake { private static Snowflake s = null; static { s = new Snowflake(0,0); } public static long getId(){ return s.nextId(); cn.hutool.core.lang.Snowflake snowflake = IdUtil.getSnowflake(1, 1); long id = snowflake.nextId(); return id; } // ==============================Fields=========================================== /** 开始时间截 (2015-01-01) */ private final long twepoch = 1420041600000L; /** 机器id所占的位数 */ private final long workerIdBits = 5L; /** 数据标识id所占的位数 */ private final long datacenterIdBits = 5L; /** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */ private final long maxWorkerId = -1L ^ (-1L << workerIdBits); /** 支持的最大数据标识id,结果是31 */ private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); /** 序列在id中占的位数 */ private final long sequenceBits = 12L; /** 机器ID向左移12位 */ private final long workerIdShift = sequenceBits; /** 数据标识id向左移17位(12+5) */ private final long datacenterIdShift = sequenceBits + workerIdBits; /** 时间截向左移22位(5+5+12) */ private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; /** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */ private final long sequenceMask = -1L ^ (-1L << sequenceBits); /** 工作机器ID(0~31) */ private long workerId; /** 数据中心ID(0~31) */ private long datacenterId; /** 毫秒内序列(0~4095) */ private long sequence = 0L; /** 上次生成ID的时间截 */ private long lastTimestamp = -1L; //==============================Constructors===================================== /** * 构造函数 * @param workerId 工作ID (0~31) * @param datacenterId 数据中心ID (0~31) */ public Snowflake(long workerId, long datacenterId) { if (workerId > maxWorkerId || workerId < 0) { throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId)); } if (datacenterId > maxDatacenterId || datacenterId < 0) { throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId)); } this.workerId = workerId; this.datacenterId = datacenterId; } // ==============================Methods========================================== /** * 获得下一个ID (该方法是线程安全的) * @return SnowflakeId */ public synchronized long nextId() { long timestamp = timeGen(); //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常 if (timestamp < lastTimestamp) { throw new RuntimeException( String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); } //如果是同一时间生成的,则进行毫秒内序列 if (lastTimestamp == timestamp) { sequence = (sequence + 1) & sequenceMask; //毫秒内序列溢出 if (sequence == 0) { //阻塞到下一个毫秒,获得新的时间戳 timestamp = tilNextMillis(lastTimestamp); } } //时间戳改变,毫秒内序列重置 else { sequence = 0L; } //上次生成ID的时间截 lastTimestamp = timestamp; //移位并通过或运算拼到一起组成64位的ID return ((timestamp - twepoch) << timestampLeftShift) // | (datacenterId << datacenterIdShift) // | (workerId << workerIdShift) // | sequence; } /** * 阻塞到下一个毫秒,直到获得新的时间戳 * @param lastTimestamp 上次生成ID的时间截 * @return 当前时间戳 */ protected long tilNextMillis(long lastTimestamp) { long timestamp = timeGen(); while (timestamp <= lastTimestamp) { timestamp = timeGen(); } return timestamp; } /** * 返回以毫秒为单位的当前时间 * @return 当前时间(毫秒) */ protected long timeGen() { return System.currentTimeMillis(); } public static void main(String[]args){ System.out.println(getId()); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -42,8 +42,7 @@ InputStream inputStream; try { inputStream = file.getInputStream(); long communityId = 2L; ComMngBuildingExcelListen comMngBuildingExcelListen = new ComMngBuildingExcelListen(communityService, communityId); ComMngBuildingExcelListen comMngBuildingExcelListen = new ComMngBuildingExcelListen(communityService, this.getCommunityId()); EasyExcel.read(inputStream, null, comMngBuildingExcelListen).sheet().doRead(); } catch (IOException e) { log.error("导入模板失败【{}】", e.getMessage()); springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -88,8 +88,7 @@ InputStream inputStream = null; try { inputStream = file.getInputStream(); // LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, 45L); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, this.getCommunityId()); EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead(); } catch (IOException e) { log.error("导入模板失败【{}】", e.getMessage()); springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPopulationApi.java
New file @@ -0,0 +1,39 @@ package com.panzhihua.community_backstage.api; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.screen.ComActNeighborCircleScreenVO; import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * @author xyh * @date 2021/6/15 14:30 */ @Slf4j @Api(tags = {"大屏-人口"}) @RestController @RequestMapping("/screen/population/noToken") public class ScreenPopulationApi extends BaseController { @Resource private CommunityService communityService; @ApiOperation(value = "人口@xyh",response = ComActPopulationScreenVO.class) @GetMapping("/statistic") public R statistic(@RequestParam("communityId") Long communityId){ return communityService.statistic(communityId); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenWorkApi.java
New file @@ -0,0 +1,119 @@ package com.panzhihua.community_backstage.api; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.screen.*; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * @author xyh * @date 2021/6/15 14:30 */ @Slf4j @Api(tags = {"大屏-工作"}) @RestController @RequestMapping("/screen/work/noToken") public class ScreenWorkApi extends BaseController { @Resource private CommunityService communityService; /** * 邻里圈 * @param communityId * @return */ @ApiOperation(value = "邻里圈@xyh",response = ComActNeighborCircleScreenVO.class) @GetMapping("/eighborCircle") public R statisticNeighborCircle(@RequestParam("communityId") Long communityId){ return communityService.statisticNeighborCircle(communityId); } /** * 微心愿 * @param communityId * @return */ @ApiOperation(value = "微心愿@xyh",response = ComActMicroWishScreenVO.class) @GetMapping("/wish") public R wish(@RequestParam("communityId") Long communityId){ return communityService.wish(communityId); } /** * 社区活动 * @param communityId * @return */ @ApiOperation(value = "社区活动@xyh",response = ComActNeighborCircleScreenVO.class) @GetMapping("/activity") public R activity(@RequestParam("communityId") Long communityId){ return communityService.activity(communityId); } /** * 一起议 * @param communityId * @return */ @ApiOperation(value = "一起议@xyh",response = ComActDiscussScreenVO.class) @GetMapping("/discuss") public R discuss(@RequestParam("communityId") Long communityId){ return communityService.discuss(communityId); } /** * 党建工作 * @param communityId * @return */ @ApiOperation(value = "党建工作@xyh",response = ComPbWorkScreenVO.class) @GetMapping("/pbWork") public R pbWork(@RequestParam("communityId") Long communityId){ return communityService.pbWork(communityId); } /** * 随手拍 * @param communityId * @return */ @ApiOperation(value = "随手拍@xyh",response = ComActEasyPhotoScreenVO.class) @GetMapping("/easyPhoto") public R easyPhoto(@RequestParam("communityId") Long communityId){ return communityService.easyPhoto(communityId); } /** * 工作情况 * @param communityId * @return */ @ApiOperation(value = "工作情况@xyh",response = ComActEasyPhotoScreenVO.class) @GetMapping("/workCount") public R workCount(@RequestParam("communityId") Long communityId){ return communityService.workCount(communityId); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/biz/KeyPersonBizServiceImpl.java
@@ -58,4 +58,26 @@ excelSelectObjectList.add(new ExcelSelectObject(17, 17, (String[]) map.get("family"))); return excelSelectObjectList; } /** * 定义导出实有人口下拉选项 值 * @return */ public List<ExcelSelectObject> definePopulationExcelModelData() { HashMap map = new HashMap(5); List<String> dictNames = Arrays.asList("sex", "family", "education", "nation", "key_person_type"); dictNames.forEach(dictName -> { List<BcDictionaryVO> dictionaryItem = communityService.listDictionaryByKey(dictName).getData(); String[] dataMap = dictionaryItem.stream().map(dictionaryVO -> dictionaryVO.getDictName() + split + dictionaryVO.getDictValue()).distinct().toArray(String[]::new); map.put(dictName, dataMap); }); List<ExcelSelectObject> excelSelectObjectList = new ArrayList<>(); excelSelectObjectList.add(new ExcelSelectObject(1, 1, (String[]) map.get("sex"))); excelSelectObjectList.add(new ExcelSelectObject(4, 4, (String[]) map.get("nation"))); excelSelectObjectList.add(new ExcelSelectObject(8, 8, (String[]) map.get("key_person_type"))); excelSelectObjectList.add(new ExcelSelectObject(12, 12, (String[]) map.get("education"))); excelSelectObjectList.add(new ExcelSelectObject(17, 17, (String[]) map.get("family"))); return excelSelectObjectList; } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenPopulationApi.java
New file @@ -0,0 +1,35 @@ package com.panzhihua.service_community.api; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.service.ComMngPopulationService; import com.panzhihua.service_community.service.ScreenWorkService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * @author xyh * @date 2021/6/15 15:13 */ @RestController @RequestMapping("/screen/population") public class ScreenPopulationApi { @Resource private ComMngPopulationService comMngPopulationService; /** * 大屏人口查询 * @param communityId * @return */ @GetMapping("/statistic") R statistic(@RequestParam("communityId")Long communityId){ return R.ok(comMngPopulationService.screenStatistic(communityId)); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenWorkApi.java
New file @@ -0,0 +1,91 @@ package com.panzhihua.service_community.api; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.service.ScreenWorkService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * @author xyh * @date 2021/6/15 15:13 */ @RestController @RequestMapping("/screen/work") public class ScreenWorkApi { @Resource private ScreenWorkService screenWorkService; /** * 大屏统计邻里圈 * @param communityId * @return */ @GetMapping("/neighborCircle") R statisticNeighborCircle(@RequestParam("communityId") Long communityId){ return screenWorkService.statisticNeighborCircle(communityId); } /** * 大屏统计心愿单 * @param communityId * @return */ @GetMapping("/wish") R wish(@RequestParam("communityId") Long communityId){ return screenWorkService.wish(communityId); } /** * 大屏统计社区活动 * @param communityId * @return */ @GetMapping("/activity") R activity(@RequestParam("communityId") Long communityId){ return screenWorkService.activity(communityId); } /** * 大屏统计一起议 * @param communityId * @return */ @GetMapping("/discuss") R discuss(@RequestParam("communityId") Long communityId){ return screenWorkService.discuss(communityId); } /** * 大屏统计党建工作 * @param communityId * @return */ @GetMapping("/pbWork") R pbWork(@RequestParam("communityId")Long communityId){ return screenWorkService.pbWork(communityId); } /** * 大屏统计随手拍 * @param communityId * @return */ @GetMapping("/easyPhoto") R easyPhoto(@RequestParam("communityId")Long communityId){ return screenWorkService.easyPhoto(communityId); } /** * 大屏统计工作情况 * @param communityId * @return */ R workCount(@RequestParam("communityId")Long communityId){ return screenWorkService.workCount(communityId); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -7,6 +7,7 @@ import com.panzhihua.common.model.vos.community.CommunityActivitiesVO; import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO; import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO; import com.panzhihua.common.model.vos.screen.CarouselInfoVO; import com.panzhihua.service_community.model.dos.ComActActivityDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -15,6 +16,7 @@ import java.util.Date; import java.util.List; import java.util.Map; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -256,4 +258,17 @@ "\t\tDATE_FORMAT( a.create_at, '%Y-%m-%d' )=DATE_FORMAT(#{date},'%Y-%m-%d') \n" + "\t\tAND a.community_id =#{communityId}") CommunityActivitiesVO selectCommunityActivitiesVO(@Param("communityId") Long communityId, @Param("date")Date date); @Select("SELECT COUNT(id) AS totalNum," + "(SELECT COUNT(id) FROM com_act_activity WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) AND create_at LIKE CONCAT(#{nowDate},'%'))AS currentNum," + "(SELECT COUNT(id) FROM com_act_activity WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) AND volunteer_max = 0)AS commonNum," + "(SELECT COUNT(aas.id) FROM com_act_activity a INNER JOIN com_act_act_sign aas ON a.id = aas.activity_id WHERE a.volunteer_max = 0 AND (a.status = 3 OR a.status = 4 OR a.status = 5) AND a.community_id=#{communityId})AS commonPeopleNum," + "(SELECT COUNT(id) FROM com_act_activity WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) AND participant_max = 0)AS volunteerNum," + "(SELECT COUNT(aas.id) FROM com_act_activity a INNER JOIN com_act_act_sign aas ON a.id = aas.activity_id WHERE a.community_id=#{communityId} AND a.participant_max = 0 AND (a.status = 3 OR a.status = 4 OR a.status = 5))AS volunteerPeopleNum" + " FROM com_act_activity where community_id=#{communityId} AND (status = 3 OR status = 4 OR status = 5)") Map<String, Long> countByCommunityId(@Param("communityId")Long communityId,@Param("nowDate")String nowDate); @Select("SELECT activity_name as content,IF(volunteer_max = 0,'居民活动','志愿者活动') AS typeName FROM com_act_activity " + "WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) ORDER BY create_at DESC LIMIT #{pageSize}") List<CarouselInfoVO> screenActivity(@Param("communityId")Long communityId, @Param("pageSize")Integer pageSize); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
@@ -9,10 +9,14 @@ import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO; import com.panzhihua.common.model.vos.community.ComActDiscussVO; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.screen.CarouselInfoVO; import com.panzhihua.service_community.model.dos.ComActDiscussDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -185,4 +189,35 @@ "d.id =#{id}\n" + "GROUP BY d.id") ComActDiscussVO selectHaveSignAndHaveVote(@Param("id") Long id, @Param("loginUserId")Long loginUserId); @Select(" SELECT COUNT(id) AS totalNum," + "(SELECT COUNT(id) FROM com_act_discuss WHERE community_id = 2 AND create_at LIKE CONCAT('','%'))AS currentNum," + "(SELECT COUNT(id) FROM com_act_discuss WHERE community_id = 2 AND TYPE = 1)AS imgNum," + "(" + "SELECT COUNT(DISTINCT(user_id)) FROM (" + " SELECT c.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id WHERE d.community_id = 2 AND d.type = 1 " + " UNION ALL " + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id INNER JOIN com_act_discuss_comment_user u ON c.id = u.disscuss_comment_id WHERE d.community_id = 2 AND d.type = 1 " + "UNION ALL " + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_option o ON d.id = o.discuss_id INNER JOIN com_act_discuss_option_user u ON o.id = u.discuss_option_id WHERE d.community_id = 2 AND d.type = 1 " + " UNION ALL " + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_user u ON d.id = u.discuss_id WHERE d.community_id = 2 AND d.type = 1 " + ")d " + ")AS commonPeopleNum," + "(" + "SELECT COUNT(DISTINCT(user_id)) FROM (" + " SELECT c.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id WHERE d.community_id = 2 AND d.type = 2 " + " UNION ALL" + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id INNER JOIN com_act_discuss_comment_user u ON c.id = u.disscuss_comment_id WHERE d.community_id = 2 AND d.type = 2 " + "UNION ALL " + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_option o ON d.id = o.discuss_id INNER JOIN com_act_discuss_option_user u ON o.id = u.discuss_option_id WHERE d.community_id = 2 AND d.type = 2 " + " UNION ALL " + " SELECT u.user_id FROM com_act_discuss d INNER JOIN com_act_discuss_user u ON d.id = u.discuss_id WHERE d.community_id = 2 AND d.type = 2 " + ")d " + ")AS volunteerPeopleNum " + " FROM com_act_discuss") Map<String, Long> countByCommunityId(@Param("communityId")Long communityId, @Param("date")String date); @Select(" SELECT discuss_subject AS content,IF(type = 1,'图文','投票') AS typeName FROM com_act_discuss WHERE community_id = #{communityId} ORDER BY create_at DESC LIMIT #{pageSize}") List<CarouselInfoVO> screenDiscuss(@Param("communityId") Long communityId, @Param("pageSize")Integer pageSize); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
@@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO; import com.panzhihua.common.model.vos.community.TodoEventsVO; import com.panzhihua.common.model.vos.screen.EastPhotoVO; import com.panzhihua.common.model.vos.screen.EasyPhotoDataVO; import com.panzhihua.common.model.vos.screen.PbWorkVO; import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -235,4 +239,33 @@ "</script>" ) IPage<ComActEasyPhotoVO> pageEasyPhotoApplets(Page page, @Param("comActEasyPhotoVO")ComActEasyPhotoVO comActEasyPhotoVO); @Select("SELECT t.name,COUNT(p.id) FROM com_act_easy_photo_type t LEFT JOIN com_act_easy_photo_type_relation r ON t.id = r.easy_type_id " + "LEFT JOIN com_act_easy_photo p ON r.easy_id = p.id AND p.handle_status = 1 AND p.community_id = #{communityId} " + "GROUP BY t.name ") Map<String, Long> countDeal(@Param("communityId")Long communityId); @Select("SELECT t.name,COUNT(p.id) FROM com_act_easy_photo_type t LEFT JOIN com_act_easy_photo_type_relation r ON t.id = r.easy_type_id " + "LEFT JOIN com_act_easy_photo p ON r.easy_id = p.id AND p.is_publicity = 1 AND p.community_id = #{communityId} " + "GROUP BY t.name ") Map<String, Long> countPub(@Param("communityId")Long communityId); @Select("SELECT t.name,COUNT(p.id) FROM com_act_easy_photo_type t LEFT JOIN com_act_easy_photo_type_relation r ON t.id = r.easy_type_id " + "LEFT JOIN com_act_easy_photo p ON r.easy_id = p.id AND p.status = 4 AND p.community_id = #{communityId} " + "GROUP BY t.name ") Map<String, Long> countApproved(@Param("communityId")Long communityId); @Select("SELECT COUNT(id) AS noneDeal," + "(" + "(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = #{communityId} AND STATUS = 4 AND handle_status = 2)*100/(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = #{communityId} AND handle_status = 2) " + ") AS pubPoint," + "(SELECT AVG(TIMESTAMPDIFF(HOUR,create_at,feedback_at)) FROM com_act_easy_photo WHERE community_id = #{communityId} and handle_status = 2 ) AS dealTime " + "FROM com_act_easy_photo and community_id = #{communityId}") Map<String, Long> countByCommunityId(@Param("communityId")Long communityId); @Select("SELECT COUNT(id) AS total, " + "(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = #{communityId} AND #{start} < create_at and create_at < #{end} ) AS adds, " + "(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id =#{communityId} AND handle_status = 2 AND #{start} < create_at and create_at < #{end}) AS deal " + "FROM com_act_easy_photo WHERE community_id = #{communityId} AND #{start} < create_at and create_at < #{end} ") EastPhotoVO countByTime(@Param("start")String start, @Param("end")String end, @Param("nowDate")String nowDate, @Param("communityId")Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
@@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Update; import java.util.List; import java.util.Map; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -161,4 +162,12 @@ @Update("update com_act_micro_wish set `status`=6, evaluate_at=now() where `status`=5 and TIMESTAMPDIFF(HOUR, feedback_at, SYSDATE())>=72") int updateStatusAutoConfirm(); @Select("SELECT COUNT(id) AS completedNum," + "(SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5)) AS willNum ," + "(SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5 OR status = 6) AND create_at LIKE CONCAT(#{nowDate},'%')) AS currentNum " + "FROM com_act_micro_wish WHERE community_id = #{communityId} AND status = 6 ") Map<String, Long> countByCommunityId(@Param("communityId") Long communityId,@Param("nowDate") String nowDate); @Select("SELECT photo_path_list FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5 OR status = 6) ORDER BY create_at DESC limit #{pageSize}") List<String> getAllImgs(@Param("communityId") Long communityId,@Param("pageSize") Integer pageSize); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
@@ -5,16 +5,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO; import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO; import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO; import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO; import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyAppVO; import com.panzhihua.common.model.vos.neighbor.*; import com.panzhihua.common.model.vos.screen.CarouselInfoVO; import com.panzhihua.common.model.vos.screen.ComActNeighborCircleScreenVO; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.service_community.model.dos.ComActNeighborCircleDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; /** * @auther lyq @@ -109,4 +110,18 @@ " where reply.comment_id = #{commentId} and reply.status = 1") IPage<ComActNeighborCommentReplyAppVO> neighborCommentReplyByApp(Page page, @Param("commentId") Long commentId); @Select("SELECT id,release_content as content FROM com_act_neighbor_circle WHERE community_id =#{communityId} and(status = 2 or status = 3) ORDER BY create_at DESC limit #{pageSize}") List<CarouselInfoVO> screenNeighborCircle(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize); @Select(" SELECT COUNT(id) AS totalNum," + " (SELECT COUNT(id) FROM com_act_neighbor_circle WHERE community_id = #{communityId} AND (status = 2 OR status = 3) AND create_at LIKE CONCAT(#{nowDate},'%')) AS currentNum " + " FROM com_act_neighbor_circle WHERE community_id = #{communityId} AND(status = 2 OR status =3)") Map<String, Long> countByCommunityId(@Param("communityId")Long communityId,@Param("nowDate")String nowDate); @Select("SELECT SUM(comment_num) as commentNum,SUM(fabulous_num) as fabulousNum,SUM(forward_num) as forwardNum FROM com_act_neighbor_circle WHERE community_id = #{communityId} and (status = 2 OR status =3) group by community_id ") Map<String, Long> sumScreenNum(Long communityId); @Select("SELECT release_images FROM com_act_neighbor_circle_comment WHERE community_id = #{communityId} and (status = 2 OR status =3) order by create_at desc limit #{pageSize}") List<String> screenNeighborCircleImgs(@Param("communityId") Long communityId,@Param("pageSize") Integer pageSize); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -20,6 +20,7 @@ import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; /** * 实有人口Dao @@ -238,4 +239,38 @@ ",(select count(id) from com_mng_population where act_id = #{communityId} and label is not null) as specialTotal " + " from com_mng_population as cmp where act_id = #{communityId}") ComMngPopulationTotalVO getPopulationTotalByAdmin(@Param("communityId") Long communityId); @Select("SELECT COUNT(id) AS man,(SELECT COUNT(id) FROM com_mng_population WHERE sex = 2 AND act_id = #{communityId}) AS woman FROM com_mng_population WHERE sex = 1 AND act_id = #{communityId}") Map<String, Long> countBySex(@Param("communityId") Long communityId); @Select( "SELECT " + "(SELECT COUNT(aa.age) FROM " + "(SELECT (SELECT TIMESTAMPDIFF(YEAR, birthday, CURDATE()) ) AS age FROM com_mng_population WHERE act_id = #{communityId}) as aa where aa.age<= 16) as age16," + "(SELECT COUNT(aa.age) FROM " + "(SELECT (SELECT TIMESTAMPDIFF(YEAR, birthday, CURDATE()) ) AS age FROM com_mng_population WHERE act_id = #{communityId}) AS aa WHERE aa.age > 16 and aa.age<= 25) AS age25," + "(SELECT COUNT(aa.age) FROM " + "(SELECT (SELECT TIMESTAMPDIFF(YEAR, birthday, CURDATE()) ) AS age FROM com_mng_population WHERE act_id = #{communityId}) AS aa WHERE aa.age > 25 and aa.age<= 35) AS age35," + "(SELECT COUNT(aa.age) FROM " + "(SELECT (SELECT TIMESTAMPDIFF(YEAR, birthday, CURDATE()) ) AS age FROM com_mng_population WHERE act_id = #{communityId}) AS aa WHERE aa.age > 35 and aa.age<= 45) AS age45," + "(SELECT COUNT(aa.age) FROM " + "(SELECT (SELECT TIMESTAMPDIFF(YEAR, birthday, CURDATE()) ) AS age FROM com_mng_population WHERE act_id = #{communityId}) AS aa WHERE aa.age > 45 and aa.age<= 55) AS age55," + "(SELECT COUNT(aa.age) FROM " + "(SELECT (SELECT TIMESTAMPDIFF(YEAR, birthday, CURDATE()) ) AS age FROM com_mng_population WHERE act_id = #{communityId}) AS aa WHERE aa.age > 55) AS age55over") Map<String, Long> countByAge(@Param("communityId")Long communityId); @Select("SELECT COUNT(id)AS xx," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 2 AND act_id = #{communityId}) as cz," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 3 AND act_id = #{communityId}) as gz," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 4 AND act_id = #{communityId}) as zz," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 5 AND act_id = #{communityId}) as dz," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 6 AND act_id = #{communityId}) as bk," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 7 AND act_id = #{communityId}) as ss," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 8 AND act_id = #{communityId}) as bs," + "(SELECT COUNT(id) FROM com_mng_population WHERE culture_level = 9 AND act_id = #{communityId}) as qt" + " FROM com_mng_population WHERE culture_level = 1 AND act_id = #{communityId}") Map<String, Long> countByCulture(@Param("communityId")Long communityId); @Select("SELECT COUNT(p.id) FROM com_mng_population p INNER JOIN sys_user u ON p.card_no = u.id_card where p.act_id = #{communityId}") Long countUsedCommunityPopulation(@Param("communityId")Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbDynDAO.java
New file @@ -0,0 +1,31 @@ package com.panzhihua.service_community.dao; import com.panzhihua.common.model.vos.screen.PbWorkVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.Map; /** * @author xyh * @date 2021/6/16 14:57 */ @Mapper public interface ComPbDynDAO { @Select("SELECT COUNT(id) AS activityNum ," + "(SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = #{communityId} AND STATUS = 2) AS dynNum," + "(" + " (SELECT COUNT(id) FROM com_pb_activity WHERE community_id = #{communityId} AND (STATUS = 3 or STATUS = 4 or STATUS = 5 ) AND create_at LIKE CONCAT(#{nowDate},'%')) + " + " (SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = #{communityId} AND STATUS = 2 AND create_at LIKE CONCAT(#{nowDate},'%'))" + " ) AS currentNum " + " FROM com_pb_activity WHERE community_id = #{communityId} AND (STATUS = 3 or STATUS = 4 or STATUS = 5 )") Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate")String nowDate); @Select("SELECT " + "(SELECT COUNT(id) FROM com_pb_activity WHERE community_id = #{communityId} AND (STATUS = 3 or STATUS = 4 or STATUS = 5 ) AND #{start} < create_at AND create_at < #{end}) AS activity," + "(SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = #{communityId} AND STATUS = 2 AND #{start} < create_at AND create_at < #{end}) AS dyn" + "FROM DUAL") PbWorkVO countByTime(@Param("start")String start,@Param("end")String end, @Param("communityId")Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
@@ -17,7 +17,7 @@ /** * 自增 id */ @TableId(type = IdType.AUTO) @TableId(type = IdType.INPUT) private Long id; /** * 街道id @@ -42,12 +42,17 @@ /** * 年龄 */ private Integer age; // private Integer age; /** * 身份证号码 */ @EncryptDecryptField private String cardNo; /** * 临时用 */ private String cardNoStr; /** * 街路巷 */ @@ -132,9 +137,9 @@ /** * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他) */ private Integer relation; private String relationStr; // private Integer relation; // // private String relationStr; /** * 文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他) @@ -146,8 +151,6 @@ */ private Integer marriage; private String marriageStr; /** * 健康状况 @@ -157,7 +160,7 @@ /** * 房屋地址 */ private String houseAddress; // private String houseAddress; /** * 出生年月日 @@ -167,7 +170,7 @@ /** * 居住地房屋id */ private Long houseId; // private Long houseId; /** * 性别(1.男 2.女 3.未知) springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java
@@ -23,7 +23,7 @@ /** * 主键id */ @TableId(type = IdType.AUTO) @TableId(type = IdType.INPUT) private Long id; /** @@ -111,10 +111,22 @@ */ private Long villageId; /** * 街道id * @return */ private Long streetId; /** * 层次递归字段(省>市>区县>街道>社区>小区>详细地址) */ private String path; @Override public String toString() { return "ComMngPopulationHouseDO{" + "id=" + id + ", streetId="+streetId+ ", address=" + address + ", code=" + code + ", alley=" + alley + @@ -125,6 +137,7 @@ ", isEmpty=" + isEmpty + ", constructPurpose=" + constructPurpose + ", constructArea=" + constructArea + ", path="+path+ ", createAt=" + createAt + ", updateAt=" + updateAt + "}"; springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
@@ -23,7 +23,7 @@ /** * 主键id */ @TableId(type = IdType.AUTO) @TableId(type = IdType.INPUT) private Long id; /** @@ -41,7 +41,20 @@ */ private Integer relation; private String relationStr; /** * 人和房屋关系’ (1.自住2、租住) */ private Integer relationId; /** * 入住开始时间 */ private Date startAt; /** * 入住结束时间 */ private Date endAt; /** * 创建时间 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -190,4 +190,11 @@ * @date 2021/6/10 17:00 */ ComMngPopulationDO getPopulationByCardNo(String cardNo); /** * 大屏统计实有人口 * @param communityId * @return */ R screenStatistic(Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ScreenWorkService.java
New file @@ -0,0 +1,59 @@ package com.panzhihua.service_community.service; import com.panzhihua.common.model.vos.R; /** * @author xyh * @date 2021/6/15 15:14 */ public interface ScreenWorkService { /** * 大屏统计邻里圈 * @param communityId * @return */ R statisticNeighborCircle(Long communityId); /** * 大屏统计心愿单 * @param communityId * @return */ R wish(Long communityId); /** * 大屏统计社区活动 * @param communityId * @return */ R activity(Long communityId); /** * 大屏统计一起议 * @param communityId * @return */ R discuss(Long communityId); /** * 大屏统计党建工作 * @param communityId * @return */ R pbWork(Long communityId); /** * 大屏统计随手拍 * @param communityId * @return */ R easyPhoto(Long communityId); /** * 大屏统计工作情况 * @param communityId * @return */ R workCount(Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -7,16 +7,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.base.Joiner; import com.google.common.collect.Lists; import com.panzhihua.common.enums.PopulCultureLevelEnum; import com.panzhihua.common.enums.PopulHouseUseEnum; import com.panzhihua.common.enums.PopulIsOksEnum; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.dtos.user.PageInputUserDTO; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.area.AreaAddressVO; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.screen.ComActPopulationCultureVO; import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO; import com.panzhihua.common.model.vos.screen.ComMngPopulationAgeVO; import com.panzhihua.common.model.vos.user.*; import com.panzhihua.common.utlis.*; import com.panzhihua.service_community.dao.*; @@ -25,8 +28,6 @@ import com.panzhihua.service_community.service.ComMngPopulationService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -135,18 +136,18 @@ if (ObjectUtils.isEmpty(comMngPopulationDO)) { return R.fail("用户信息不存在"); } if(StringUtils.isNotEmpty(comMngPopulationDO.getBirthday())){//计算年龄 comMngPopulationDO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationDO.getBirthday())); } // if(StringUtils.isNotEmpty(comMngPopulationDO.getBirthday())){//计算年龄 // comMngPopulationDO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationDO.getBirthday())); // } ComMngPopulationVO comMngPopulationVO = new ComMngPopulationVO(); BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO); //查询户主关系信息 List<ComHouseMemberVo> comMngFamilyInfoVOS = populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId()); if (!comMngFamilyInfoVOS.isEmpty()) { comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS); } // List<ComHouseMemberVo> comMngFamilyInfoVOS = populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId()); // if (!comMngFamilyInfoVOS.isEmpty()) { // comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS); // } //查询当前用户电子档信息 if(!StringUtils.isEmpty(comMngPopulationDO.getCardNo())){ @@ -301,27 +302,25 @@ //查询该社区的省市区地址 AreaAddressVO areaAddressVO = populationDAO.getAreaAddress(comActDO.getProvinceCode(),comActDO.getCityCode(),comActDO.getAreaCode()); //查询社区上街道信息 String street = ""; String streetName = ""; if(comActDO.getStreetId() != null){ ComStreetDO streetDO = comStreetDAO.selectById(comActDO.getStreetId()); if(streetDO != null){ street = streetDO.getName(); streetName = streetDO.getName(); } } int index = 2; StringBuilder areaPath = new StringBuilder(); areaPath.append(areaAddressVO.getProvince()).append(">").append(areaAddressVO.getCity()).append(">").append(areaAddressVO.getDistrict()).append(">"); //处理实有人口信息 List<ComMngPopulationDO> savePopulList = new ArrayList<>(); List<ComMngPopulationHouseDO> saveHouseList = new ArrayList<>(); for (ComMngPopulationServeExcelVO vo : list) { String address = ""; //查询街路巷是否存在 //查询小区街路巷是否存在 ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley",vo.getRoad()).eq("house_num",vo.getDoorNo()).eq("community_id",communityId)); if (comMngVillageDO == null) { ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorMsg("查无:" + vo.getRoad() + vo.getDoorNo() + "小区/房租地址,请先新建地址"); importErrorVO.setErrorPosition("第" + index + "行,第7、8列"); importErrorVO.setErrorMsg("街路巷或小区号不存在"); importErrorVO.setErrorPosition("街路巷:" + vo.getRoad() + ",小区号:"+vo.getDoorNo()); populationImportErrorVOList.add(importErrorVO); index++; continue; } @@ -329,8 +328,9 @@ comMngVillageDO.setHouseNum(comMngVillageDO.getHouseNum() + "号"); } //小区详细地址 address = areaAddressVO.getProvince() + areaAddressVO.getCity() + areaAddressVO.getDistrict() + street + comMngVillageDO.getAlley() + comMngVillageDO.getHouseNum() + areaAddressVO.getDistrict() + streetName + comMngVillageDO.getAlley() + comMngVillageDO.getHouseNum() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo(); vo.setAddress(address); @@ -340,21 +340,94 @@ .eq(ComMngPopulationHouseDO::getFloor,vo.getFloor()).eq(ComMngPopulationHouseDO::getUnitNo,vo.getUnitNo()) .eq(ComMngPopulationHouseDO::getHouseNo,vo.getHouseNo())); if(populationHouseDO == null){ boolean isExits = true; if(!saveHouseList.isEmpty()){ for (ComMngPopulationHouseDO saveHouse:saveHouseList){ if(saveHouse.getVillageId().equals(comMngVillageDO.getVillageId()) && saveHouse.getFloor().equals(vo.getFloor()) && saveHouse.getUnitNo().equals(vo.getUnitNo()) && saveHouse.getHouseNo().equals(vo.getHouseNo())){ populationHouseDO = saveHouse; isExits = false; break; //房屋信息不存在建立房屋信息 populationHouseDO = savePopulationHouse(vo,comMngVillageDO,communityId,address,areaPath,comActDO.getName()); } if(StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())){ //空户处理完房屋信息,直接返回 continue; } String cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey); //判断实有人口是否已存在 ComMngPopulationDO populationDO = this.baseMapper.selectOne(new QueryWrapper<ComMngPopulationDO>().lambda() .eq(ComMngPopulationDO::getCardNo,cardNoAES)); if(populationDO == null){ //不存在实有人口,则新增 populationDO = savePopulationDO(vo,comActDO,comMngVillageDO,cardNoAES); }else { //如果存在人口信息,且是自用房,则更新人口默认的房屋信息 if(vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())){ populationDO = updatePopulationHouseUse(vo,populationDO,cardNoAES); } } //处理实有人口房屋居住信息 if(populationDO != null){ ComMngPopulationHouseUserDO populationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>() .lambda().eq(ComMngPopulationHouseUserDO::getHouseId,populationHouseDO.getId()) .eq(ComMngPopulationHouseUserDO::getPopulId,populationDO.getId())); if(populationHouseUserDO == null){ populationHouseUserDO = new ComMngPopulationHouseUserDO(); populationHouseUserDO.setId(Snowflake.getId()); populationHouseUserDO.setHouseId(populationHouseDO.getId()); populationHouseUserDO.setPopulId(populationDO.getId()); populationHouseUserDO.setRelation(vo.getRelation()); populationHouseUserDO.setRelationId(vo.getIsRent()); comMngPopulationHouseUserDAO.insert(populationHouseUserDO); } } } if(isExits){ //如果有错误,返回错误 //暂时注释,等客户完成任务需要恢复 /*if(!populationImportErrorVOList.isEmpty()){ return R.fail(JSON.toJSONString(populationImportErrorVOList)); } this.saveBatch(populationDOList);*/ if(!populationImportErrorVOList.isEmpty()){ return R.fail(JSON.toJSONString(populationImportErrorVOList)); } return R.ok(); } private ComMngPopulationDO updatePopulationHouseUse(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO,String cardNoAES) throws Exception { populationDO.setRoad(vo.getRoad()); populationDO.setDoorNo(vo.getDoorNo()); populationDO.setFloor(vo.getFloor()); populationDO.setUnitNo(vo.getUnitNo()); populationDO.setHouseNo(vo.getHouseNo()); populationDO.setCardNo(cardNoAES); populationDO.setCardNoStr(vo.getCardNo()); if(StringUtils.isNotEmpty(populationDO.getPhone())){ populationDO.setPhone(AESUtil.encrypt128(populationDO.getPhone(), aesKey)); } this.baseMapper.updateById(populationDO); return populationDO; } private ComMngPopulationDO savePopulationDO(ComMngPopulationServeExcelVO vo, ComActDO comActDO, ComMngVillageDO comMngVillageDO,String cardNoAES) { ComMngPopulationDO populationDO = new ComMngPopulationDO(); BeanUtils.copyProperties(vo,populationDO); populationDO.setId(Snowflake.getId()); List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList()); populationDO.setVillageId(comMngVillageDO.getVillageId()); populationDO.setActId(comActDO.getCommunityId()); populationDO.setStreetId(comActDO.getStreetId()); populationDO.setLabel(Joiner.on(",").join(userTag)); populationDO.setVillageName(comMngVillageDO.getGroupAt()); populationDO.setCardNo(cardNoAES); populationDO.setCardNoStr(vo.getCardNo()); populationDO.setUpdateAt(new Date()); this.baseMapper.insert(populationDO); return populationDO; } private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId, String address, StringBuilder areaPath,String actName) { //查询该房屋未建立,执行建立房屋信息 populationHouseDO = new ComMngPopulationHouseDO(); ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO(); populationHouseDO.setId(Snowflake.getId()); populationHouseDO.setStreetId(comMngVillageDO.getStreetId()); populationHouseDO.setVillageId(comMngVillageDO.getVillageId()); populationHouseDO.setAlley(vo.getRoad()); populationHouseDO.setHouseNum(vo.getDoorNo()); @@ -367,6 +440,9 @@ populationHouseDO.setAddress(address); populationHouseDO.setUpdateAt(new Date()); populationHouseDO.setConstructPurpose(vo.getBuildPurpose()); StringBuilder housePath = new StringBuilder(); housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(address); populationHouseDO.setPath(areaPath.toString()+ housePath.toString()); try { populationHouseDO.setConstructArea(new BigDecimal(vo.getBuildArea())); }catch (Exception e){ @@ -385,121 +461,7 @@ populationHouseDO.setControlStatus(vo.getControlStatus()); } comMngPopulationHouseDAO.insert(populationHouseDO); saveHouseList.add(populationHouseDO); } } if(StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())){ //空户处理完房屋信息,直接返回 continue; } //判断实有人口是否已存在 ComMngPopulationDO populationDO = this.baseMapper.selectOne(new QueryWrapper<ComMngPopulationDO>().lambda() .eq(ComMngPopulationDO::getCardNo,AESUtil.encrypt128(vo.getCardNo(), aesKey)).eq(ComMngPopulationDO::getName,vo.getName())); if(populationDO == null){ if(savePopulList.size() > 0){ String name = vo.getName(); String cardNo = AESUtil.encrypt128(vo.getCardNo(), aesKey); if(savePopulList.stream().anyMatch(populDo -> name.equals(populDo.getName()) && cardNo.equals(populDo.getCardNo()))){ //实有人口已存在,判断录入的这个房屋信息是否是用户的居住地 for (ComMngPopulationDO savePopul:savePopulList) { if(savePopul.getName().equals(name) && savePopul.getCardNo().equals(cardNo)){ if(vo.getIsResidence() != null && vo.getIsResidence().equals(PopulIsOksEnum.YES.getCode())) { savePopul.setRoad(vo.getRoad()); savePopul.setDoorNo(vo.getDoorNo()); savePopul.setFloor(vo.getFloor()); savePopul.setUnitNo(vo.getUnitNo()); savePopul.setHouseNo(vo.getHouseNo()); savePopul.setHouseAddress(vo.getAddress()); savePopul.setHouseId(populationHouseDO.getId()); savePopul.setCardNo(cardNo); savePopul.setPhone(AESUtil.encrypt128(savePopul.getPhone(), aesKey)); this.baseMapper.updateById(savePopul); } populationDO = savePopul; break; } } }else{ //不存在实有人口则新增 populationDO = new ComMngPopulationDO(); BeanUtils.copyProperties(vo,populationDO); List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList()); populationDO.setVillageId(comMngVillageDO.getVillageId()); populationDO.setActId(comActDO.getCommunityId()); populationDO.setStreetId(comActDO.getStreetId()); populationDO.setLabel(Joiner.on(",").join(userTag)); populationDO.setVillageName(comMngVillageDO.getGroupAt()); populationDO.setHouseAddress(address); populationDO.setHouseId(populationHouseDO.getId()); populationDO.setUpdateAt(new Date()); this.baseMapper.insert(populationDO); savePopulList.add(populationDO); index++; } }else { //不存在实有人口则新增 populationDO = new ComMngPopulationDO(); BeanUtils.copyProperties(vo,populationDO); List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList()); populationDO.setVillageId(comMngVillageDO.getVillageId()); populationDO.setActId(comActDO.getCommunityId()); populationDO.setStreetId(comActDO.getStreetId()); populationDO.setLabel(Joiner.on(",").join(userTag)); populationDO.setVillageName(comMngVillageDO.getGroupAt()); populationDO.setHouseAddress(address); populationDO.setHouseId(populationHouseDO.getId()); populationDO.setUpdateAt(new Date()); this.baseMapper.insert(populationDO); savePopulList.add(populationDO); index++; } }else { //实有人口已存在,判断录入的这个房屋信息是否是用户的居住地 if(vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())){ populationDO.setRoad(vo.getRoad()); populationDO.setDoorNo(vo.getDoorNo()); populationDO.setFloor(vo.getFloor()); populationDO.setUnitNo(vo.getUnitNo()); populationDO.setHouseNo(vo.getHouseNo()); populationDO.setHouseAddress(address); populationDO.setCardNo(AESUtil.encrypt128(populationDO.getCardNo(), aesKey)); if(StringUtils.isNotEmpty(populationDO.getPhone())){ populationDO.setPhone(AESUtil.encrypt128(populationDO.getPhone(), aesKey)); } populationDO.setHouseId(populationHouseDO.getId()); this.baseMapper.updateById(populationDO); } } //处理实有房屋居住信息 if(populationDO != null){ ComMngPopulationHouseUserDO populationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>() .lambda().eq(ComMngPopulationHouseUserDO::getHouseId,populationHouseDO.getId()) .eq(ComMngPopulationHouseUserDO::getPopulId,populationDO.getId())); if(populationHouseUserDO == null){ populationHouseUserDO = new ComMngPopulationHouseUserDO(); populationHouseUserDO.setHouseId(populationHouseDO.getId()); populationHouseUserDO.setPopulId(populationDO.getId()); populationHouseUserDO.setRelation(populationDO.getRelation()); populationHouseUserDO.setRelationStr(populationDO.getRelationStr()); comMngPopulationHouseUserDAO.insert(populationHouseUserDO); } } } //如果有错误,返回错误 //暂时注释,等客户完成任务需要恢复 /*if(!populationImportErrorVOList.isEmpty()){ return R.fail(JSON.toJSONString(populationImportErrorVOList)); } this.saveBatch(populationDOList);*/ if(!populationImportErrorVOList.isEmpty()){ return R.fail(JSON.toJSONString(populationImportErrorVOList)); } return R.ok(); return populationHouseDO; } /** @@ -839,4 +801,115 @@ return null; } @Override public R screenStatistic(Long communityId) { ComActPopulationScreenVO comActPopulationScreenVO = new ComActPopulationScreenVO(); ComMngPopulationTotalVO vo = populationDAO.getPopulationTotalByAdmin(communityId); comActPopulationScreenVO.setTotalNum(vo.getPopulationTotal() == null ? 0 : vo.getPopulationTotal()); comActPopulationScreenVO.setLocalNum(vo.getLocalTotal() == null ? 0 : vo.getLocalTotal().longValue()); comActPopulationScreenVO.setOutNum(vo.getOutTotal() == null ? 0 : vo.getOutTotal().longValue()); comActPopulationScreenVO.setSpecialNum(vo.getSpecialTotal() == null ? 0 : vo.getSpecialTotal().longValue()); //统计已使用社区通人数 Long count = populationDAO.countUsedCommunityPopulation(communityId); comActPopulationScreenVO.setUsedCommunityNum(count == null ? 0 : count); //统计性别 Map<String,Long> sexMap = populationDAO.countBySex(communityId); comActPopulationScreenVO.setWoman(sexMap.get("woman") == null ? 0L : sexMap.get("woman")); comActPopulationScreenVO.setManNum(sexMap.get("man") == null ? 0L : sexMap.get("man")); int manPoint = (int) (((double)comActPopulationScreenVO.getManNum()/(double)comActPopulationScreenVO.getTotalNum())*100); comActPopulationScreenVO.setManPoint(manPoint); comActPopulationScreenVO.setWomanPoint(100 - manPoint); //统计年龄结构 setAgeGroup(comActPopulationScreenVO,communityId); //统计学历 setCultureGroup(comActPopulationScreenVO,communityId); return R.ok(comActPopulationScreenVO); } private void setCultureGroup(ComActPopulationScreenVO comActPopulationScreenVO, Long communityId) { Map<String,Long> cultureMap = populationDAO.countByCulture(communityId); List<ComActPopulationCultureVO> cultureGroup = new ArrayList<>(); ComActPopulationCultureVO xx = new ComActPopulationCultureVO(); xx.setLevel(PopulCultureLevelEnum.XX.getName()); xx.setNum(cultureMap.get("xx")); cultureGroup.add(xx); ComActPopulationCultureVO cz = new ComActPopulationCultureVO(); cz.setLevel(PopulCultureLevelEnum.CZ.getName()); cz.setNum(cultureMap.get("cz")); cultureGroup.add(cz); ComActPopulationCultureVO gz = new ComActPopulationCultureVO(); gz.setLevel(PopulCultureLevelEnum.GZ.getName()); gz.setNum(cultureMap.get("gz")); cultureGroup.add(gz); ComActPopulationCultureVO zz = new ComActPopulationCultureVO(); zz.setLevel(PopulCultureLevelEnum.ZZ.getName()); zz.setNum(cultureMap.get("zz")); cultureGroup.add(zz); ComActPopulationCultureVO dz = new ComActPopulationCultureVO(); dz.setLevel(PopulCultureLevelEnum.DZ.getName()); dz.setNum(cultureMap.get("dz")); cultureGroup.add(dz); ComActPopulationCultureVO bk = new ComActPopulationCultureVO(); bk.setLevel(PopulCultureLevelEnum.BK.getName()); bk.setNum(cultureMap.get("bk")); cultureGroup.add(bk); ComActPopulationCultureVO ss = new ComActPopulationCultureVO(); ss.setLevel(PopulCultureLevelEnum.SS.getName()); ss.setNum(cultureMap.get("ss")); cultureGroup.add(ss); ComActPopulationCultureVO bs = new ComActPopulationCultureVO(); bs.setLevel(PopulCultureLevelEnum.BS.getName()); bs.setNum(cultureMap.get("bs")); cultureGroup.add(bs); ComActPopulationCultureVO qt = new ComActPopulationCultureVO(); qt.setLevel(PopulCultureLevelEnum.QT.getName()); qt.setNum(cultureMap.get("qt")); cultureGroup.add(qt); comActPopulationScreenVO.setCultureGroup(cultureGroup); } private void setAgeGroup(ComActPopulationScreenVO comActPopulationScreenVO,Long communityId) { Map<String,Long> ageMap = populationDAO.countByAge(communityId); List<ComMngPopulationAgeVO> ageList = new ArrayList<>(); ComMngPopulationAgeVO ageVO16 = new ComMngPopulationAgeVO(); ageVO16.setGroup("0-16岁"); ageVO16.setNum(ageMap.get("age16")); ageList.add(ageVO16); ComMngPopulationAgeVO ageVO25 = new ComMngPopulationAgeVO(); ageVO25.setGroup("16-25岁"); ageVO25.setNum(ageMap.get("age25")); ageList.add(ageVO25); ComMngPopulationAgeVO ageVO35 = new ComMngPopulationAgeVO(); ageVO35.setGroup("25-35岁"); ageVO35.setNum(ageMap.get("age35")); ageList.add(ageVO35); ComMngPopulationAgeVO ageVO45 = new ComMngPopulationAgeVO(); ageVO45.setGroup("35-45岁"); ageVO45.setNum(ageMap.get("age45")); ageList.add(ageVO45); ComMngPopulationAgeVO ageVO55 = new ComMngPopulationAgeVO(); ageVO55.setGroup("45-55岁"); ageVO55.setNum(ageMap.get("age55")); ageList.add(ageVO55); ComMngPopulationAgeVO ageVO55over = new ComMngPopulationAgeVO(); ageVO55over.setGroup("55岁以上"); ageVO55over.setNum(ageMap.get("age55over")); ageList.add(ageVO55over); comActPopulationScreenVO.setAgeGroup(ageList); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
New file @@ -0,0 +1,284 @@ package com.panzhihua.service_community.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.panzhihua.common.model.dtos.partybuilding.ComPbActivityDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.screen.*; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.service.ScreenWorkService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; /** * @author xyh * @date 2021/6/15 15:14 */ @Service public class ScreenWorkServiceImpl implements ScreenWorkService { private static final Integer pageSize = 200; @Resource private ComActNeighborCircleDAO comActNeighborCircleDAO; @Resource private ComActMicroWishDAO comActMicroWishDAO; @Resource private ComActActivityDAO actActivityDAO; @Resource private ComActDiscussDAO comActDiscussDAO; @Resource private ComPbDynDAO comPbDynDAO; @Resource private ComActEasyPhotoDAO comActEasyPhotoDAO; private final String moth_format_str = "yyyy-MM"; @Override public R statisticNeighborCircle(Long communityId) { ComActNeighborCircleScreenVO comActNeighborCircleScreenVO = new ComActNeighborCircleScreenVO(); String date = DateUtils.getDateFormatString(new Date(),moth_format_str); Map<String,Long> countMap = comActNeighborCircleDAO.countByCommunityId(communityId,date); comActNeighborCircleScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); comActNeighborCircleScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum")); Map<String,Long> sumMap = comActNeighborCircleDAO.sumScreenNum(communityId); comActNeighborCircleScreenVO.setFabulousNum(sumMap.get("fabulousNum") == null ? 0L : sumMap.get("fabulousNum")); comActNeighborCircleScreenVO.setCommentNum(sumMap.get("commentNum") == null ? 0L : sumMap.get("commentNum")); comActNeighborCircleScreenVO.setSharedNum(sumMap.get("forwardNum") == null ? 0L : sumMap.get("forwardNum")); //查询最近发布的邻里圈 comActNeighborCircleScreenVO.setList(comActNeighborCircleDAO.screenNeighborCircle(communityId,pageSize)); //查询最近发布的邻里圈图片 comActNeighborCircleScreenVO.setImgs(convertStringList(comActNeighborCircleDAO.screenNeighborCircleImgs(communityId,pageSize))); return R.ok(comActNeighborCircleScreenVO); } @Override public R wish(Long communityId) { ComActMicroWishScreenVO wishScreenVO = new ComActMicroWishScreenVO(); String date = DateUtils.getDateFormatString(new Date(),moth_format_str); //统计本月新增,累计实现,待实现 Map<String,Long> countMap = comActMicroWishDAO.countByCommunityId(communityId,date); wishScreenVO.setCompletedNum(countMap.get("completedNum") == null ? 0L : countMap.get("completedNum")); wishScreenVO.setWillNum(countMap.get("willNum") == null ? 0L : countMap.get("willNum")); wishScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); //微心愿轮播图片 wishScreenVO.setImgs(convertStringList(comActMicroWishDAO.getAllImgs(communityId,pageSize))); return R.ok(wishScreenVO); } private List<String> convertStringList(List<String> imgList) { List<String> imgs = new ArrayList<>(); for(String img:imgList){ if(StringUtils.isEmpty(img)){ continue; } String[] arrs = img.split(","); if(arrs.length > 1){ for(String arr: arrs){ imgs.add(arr); } }else{ imgs.add(img); } } return imgs; } @Override public R activity(Long communityId) { ComActActivityScreenVO comActActivityScreenVO = new ComActActivityScreenVO(); //统计本月新增、居民活动,志愿者活动 String date = DateUtils.getDateFormatString(new Date(),moth_format_str); Map<String,Long> countMap = actActivityDAO.countByCommunityId(communityId,date); comActActivityScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum")); comActActivityScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); comActActivityScreenVO.setCommonNum(countMap.get("commonNum") == null ? 0L : countMap.get("commonNum")); comActActivityScreenVO.setCommonPeopleNum(countMap.get("commonPeopleNum") == null ? 0L : countMap.get("commonPeopleNum")); comActActivityScreenVO.setVolunteerNum(countMap.get("volunteerNum") == null ? 0L : countMap.get("volunteerNum")); comActActivityScreenVO.setVolunteerPeopleNum(countMap.get("volunteerPeopleNum") == null ? 0L : countMap.get("volunteerPeopleNum")); //最近活动 comActActivityScreenVO.setList(actActivityDAO.screenActivity(communityId,pageSize)); return R.ok(comActActivityScreenVO); } @Override public R discuss(Long communityId) { ComActDiscussScreenVO discussScreenVO = new ComActDiscussScreenVO(); //统计本月新增,总共,图文,投票 String date = DateUtils.getDateFormatString(new Date(),moth_format_str); Map<String,Long> countMap = comActDiscussDAO.countByCommunityId(communityId,date); discussScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); discussScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum")); discussScreenVO.setImgNum(countMap.get("imgNum") == null ? 0L : countMap.get("imgNum")); discussScreenVO.setImgPeopleNum(countMap.get("imgPeopleNum") == null ? 0L : countMap.get("imgPeopleNum")); discussScreenVO.setVoteNum(discussScreenVO.getTotalNum() - discussScreenVO.getImgNum()); discussScreenVO.setVotePeopleNum(countMap.get("votePeopleNum") == null ? 0L : countMap.get("votePeopleNum")); discussScreenVO.setList(comActDiscussDAO.screenDiscuss(communityId,pageSize)); return R.ok(discussScreenVO); } @Override public R pbWork(Long communityId) { ComPbWorkScreenVO pbWorkScreenVO = new ComPbWorkScreenVO(); String date = DateUtils.getDateFormatString(new Date(),moth_format_str); Map<String,Long> countMap = comPbDynDAO.countByCommunityId(communityId,date); pbWorkScreenVO.setActivityNum(countMap.get("activityNum") == null ? 0L : countMap.get("activityNum")); pbWorkScreenVO.setDynNum(countMap.get("dynNum") == null ? 0L : countMap.get("dynNum")); pbWorkScreenVO.setTotalNum(pbWorkScreenVO.getActivityNum() + pbWorkScreenVO.getDynNum()); pbWorkScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); //统计近半年数据 List<PbWorkVO> list = new ArrayList<>(); for(PbWorkVO workVO: listHalfYear()){ PbWorkVO result = comPbDynDAO.countByTime(workVO.getStart(),workVO.getEnd(),communityId); result.setMonth(workVO.getMonth()); list.add(result); } pbWorkScreenVO.setList(list); return R.ok(pbWorkScreenVO); } private List<PbWorkVO> listHalfYear() { List<PbWorkVO> dateList = new ArrayList<>(); Date now = new Date(); for(int i= 6;i>=1;i--){ Date date = DateUtils.getDateM(now,i); DateTime endDay = DateUtil.endOfMonth(date); int m = endDay.month();//月份 int day = DateUtil.dayOfMonth(date); int half = day/2; String month = DateUtil.format(date,moth_format_str); PbWorkVO pbWorkVO = new PbWorkVO(); pbWorkVO.setMonth(m+"月上旬"); pbWorkVO.setStart(month+ "-01 00:00:00"); pbWorkVO.setEnd(month+ "-"+half+" 23:59:58"); dateList.add(pbWorkVO); PbWorkVO pbWorkVO2 = new PbWorkVO(); pbWorkVO2.setMonth(m+"月下旬"); pbWorkVO2.setStart(month+ "-"+half+" 23:59:58"); pbWorkVO2.setEnd(DateUtils.getDateFormatString(endDay,"yyyy-MM-dd HH:mm:ss")); dateList.add(pbWorkVO2); } return dateList; } @Override public R easyPhoto(Long communityId) { ComActEasyPhotoScreenVO comActEasyPhotoScreenVO = new ComActEasyPhotoScreenVO(); Map<String,Long> dealMap = comActEasyPhotoDAO.countDeal(communityId); comActEasyPhotoScreenVO.setDeal(getList(dealMap)); Map<String,Long> pubMap = comActEasyPhotoDAO.countPub(communityId); comActEasyPhotoScreenVO.setPub(getList(pubMap)); Map<String,Long> approvedMap = comActEasyPhotoDAO.countApproved(communityId); comActEasyPhotoScreenVO.setApproved(getList(approvedMap)); Map<String,Long> countMap = comActEasyPhotoDAO.countByCommunityId(communityId); comActEasyPhotoScreenVO.setNoneDeal(countMap.get("noneDeal") == null ? 0L : countMap.get("noneDeal")); comActEasyPhotoScreenVO.setPubPoint(countMap.get("pubPoint") == null ? 0L : countMap.get("pubPoint")); comActEasyPhotoScreenVO.setDealTime(countMap.get("dealTime") == null ? 0L : countMap.get("dealTime")); List<EastPhotoVO> list = new ArrayList<>(); for(PbWorkVO workVO: listHalfYear()){ String nowDate = DateUtils.getDateFormatString(DateUtil.parseDate(workVO.getStart()),moth_format_str); EastPhotoVO result = comActEasyPhotoDAO.countByTime(workVO.getStart(),workVO.getEnd(),nowDate,communityId); result.setMonth(workVO.getMonth()); list.add(result); } comActEasyPhotoScreenVO.setList(list); return R.ok(comActEasyPhotoScreenVO); } private List<EasyPhotoPointVO> getList(Map<String, Long> dealMap) { Set<Map.Entry<String,Long>> entrySet = dealMap.entrySet(); List<EasyPhotoPointVO> list = new ArrayList<>(); for(Map.Entry<String,Long> en:entrySet){ EasyPhotoPointVO easyPhotoPointVO = new EasyPhotoPointVO(); easyPhotoPointVO.setTypeName(en.getKey()); easyPhotoPointVO.setPoint(en.getValue().intValue()); list.add(easyPhotoPointVO); } return list; } @Override public R workCount(Long communityId) { ComActWorkScreenVO comActWorkScreenVO = new ComActWorkScreenVO(); comActWorkScreenVO.setAvgTime("1小时"); comActWorkScreenVO.setTotalCompletedPoint(70); comActWorkScreenVO.setEveryDayNum("0.3"); List<ActWorkCountVO> completetPoint = new ArrayList<>(); ActWorkCountVO easyPhoto = new ActWorkCountVO(); easyPhoto.setName("随手拍"); easyPhoto.setNum(10); completetPoint.add(easyPhoto); ActWorkCountVO wish = new ActWorkCountVO(); wish.setName("微心愿"); wish.setNum(23); completetPoint.add(wish); ActWorkCountVO discuss = new ActWorkCountVO(); discuss.setName("一起议"); discuss.setNum(33); completetPoint.add(discuss); ActWorkCountVO neighbor = new ActWorkCountVO(); neighbor.setName("邻里圈"); neighbor.setNum(43); completetPoint.add(neighbor); ActWorkCountVO pbWork = new ActWorkCountVO(); pbWork.setName("党建工作"); pbWork.setNum(13); completetPoint.add(pbWork); ActWorkCountVO activity = new ActWorkCountVO(); activity.setName("社区活动"); activity.setNum(63); completetPoint.add(activity); comActWorkScreenVO.setCompletetPoint(completetPoint); List<ActWorkCountVO> completetPoint2 = new ArrayList<>(); ActWorkCountVO easyPhoto2 = new ActWorkCountVO(); easyPhoto2.setName("随手拍"); easyPhoto2.setNum(10); completetPoint2.add(easyPhoto2); ActWorkCountVO wish2 = new ActWorkCountVO(); wish2.setName("微心愿"); wish2.setNum(23); completetPoint2.add(wish2); ActWorkCountVO discuss2 = new ActWorkCountVO(); discuss2.setName("一起议"); discuss2.setNum(33); completetPoint2.add(discuss2); ActWorkCountVO neighbor2 = new ActWorkCountVO(); neighbor2.setName("邻里圈"); neighbor2.setNum(43); completetPoint2.add(neighbor2); ActWorkCountVO pbWork2 = new ActWorkCountVO(); pbWork2.setName("党建工作"); pbWork2.setNum(13); completetPoint2.add(pbWork2); ActWorkCountVO activity2 = new ActWorkCountVO(); activity2.setName("社区活动"); activity2.setNum(63); completetPoint2.add(activity2); comActWorkScreenVO.setNonePoint(completetPoint2); return R.ok(comActWorkScreenVO); } }