springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActEasyPhotoScreenVO.java
@@ -19,13 +19,13 @@ private Long currentNum; @ApiModelProperty("已处理") private List<EastPhotoTypeVO> deal; private List<PieElementVO> deal; @ApiModelProperty("已公示") private List<EastPhotoTypeVO> pub; private List<PieElementVO> pub; @ApiModelProperty("已驳回") private List<EastPhotoTypeVO> approved; private List<PieElementVO> approved; @ApiModelProperty("未处理") private Long noneDeal; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActWorkScreenVO.java
@@ -23,13 +23,18 @@ @ApiModelProperty("每天完成") private String everyDayNum; @ApiModelProperty("总完成度") private Integer totalCompletedPoint; @ApiModelProperty("完成总数") private Integer totalCompleted; @ApiModelProperty("未完成总数") private Integer totalNoneCompleted; @ApiModelProperty("已完成") private List<ActWorkCountVO> completetPoint; private List<PieElementVO> completetList; @ApiModelProperty("未完成") private List<ActWorkCountVO> nonePoint; private List<PieElementVO> noneList; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoPointVO.java
File was deleted springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PieElementVO.java
New file @@ -0,0 +1,22 @@ 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/17 15:30 */ @ApiModel("饼图元素") @Data public class PieElementVO implements Serializable { @ApiModelProperty("名称") private String name; @ApiModelProperty("数量") private Integer num; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
@@ -5,10 +5,7 @@ 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.EastPhotoTypeVO; 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.common.model.vos.screen.*; import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -244,17 +241,17 @@ @Select("SELECT t.name,COUNT(p.id) as num 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.community_id = #{communityId} AND p.status = 1 " + "GROUP BY t.name ") List<EastPhotoTypeVO> countDeal(@Param("communityId")Long communityId); List<PieElementVO> countDeal(@Param("communityId")Long communityId); @Select("SELECT t.name,COUNT(p.id) as num 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.community_id = #{communityId} AND p.status = 4 " + "GROUP BY t.name ") List<EastPhotoTypeVO> countPub(@Param("communityId")Long communityId); List<PieElementVO> countPub(@Param("communityId")Long communityId); @Select("SELECT t.name,COUNT(p.id) as num 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.community_id = #{communityId} AND p.status = 3 " + "GROUP BY t.name ") List<EastPhotoTypeVO> countApproved(@Param("communityId")Long communityId); List<PieElementVO> countApproved(@Param("communityId")Long communityId); @Select("SELECT COUNT(id) AS noneDeal," + "(" + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
@@ -8,6 +8,7 @@ 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.screen.PieElementVO; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.service_community.model.dos.ComActNeighborCircleDO; import org.apache.ibatis.annotations.Mapper; @@ -124,4 +125,35 @@ @Select("SELECT release_images FROM com_act_neighbor_circle WHERE community_id = #{communityId} and status = 2 order by create_at desc limit #{pageSize}") List<String> screenNeighborCircleImgs(@Param("communityId") Long communityId,@Param("pageSize") Integer pageSize); @Select("SELECT COUNT(id) as num,'随手拍' as name FROM com_act_easy_photo WHERE community_id = #{communityId} AND STATUS = 4 " + "UNION ALL " + "SELECT COUNT(id) as num,'微心愿' as name FROM com_act_micro_wish WHERE community_id = #{communityId} AND STATUS = 6 " + "UNION ALL " + "SELECT COUNT(id) as num,'一起议' as name FROM com_act_discuss WHERE community_id = #{communityId} " + "UNION ALL " + "SELECT COUNT(id) as num,'邻里圈' as name FROM com_act_neighbor_circle WHERE community_id = #{communityId} AND STATUS = 2 " + "UNION ALL " + "SELECT (SELECT COUNT(id) FROM com_pb_activity WHERE community_id = #{communityId} AND STATUS = 5)+(SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = #{communityId} AND STATUS = 2) as num, '党建工作' as name FROM DUAL " + "UNION ALL " + "SELECT COUNT(id) as num,'社区活动' as name FROM com_act_activity WHERE community_id = #{communityId} AND STATUS = 5 ") List<PieElementVO> countAllCompletedWorkByCommunityId(@Param("communityId")Long communityId); @Select("SELECT COUNT(id) as num,'随手拍' as name FROM com_act_easy_photo WHERE community_id = #{communityId} AND (STATUS = 1 or STATUS = 2) " + "UNION ALL " + "SELECT COUNT(id) as num,'微心愿' as name FROM com_act_micro_wish WHERE community_id = #{communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4) " + "UNION ALL " + "SELECT COUNT(id) as num,'一起议' as name FROM com_act_discuss WHERE community_id = #{communityId} " + "UNION ALL " + "SELECT COUNT(id) as num,'邻里圈' as name FROM com_act_neighbor_circle WHERE community_id = #{communityId} AND STATUS = 1 " + "UNION ALL " + "SELECT (SELECT COUNT(id) FROM com_pb_activity WHERE community_id = #{communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4) )+(SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = #{communityId} AND STATUS = 1) as num ,'党建工作' as name FROM DUAL " + "UNION ALL " + "SELECT COUNT(id),'社区活动' as name FROM com_act_activity WHERE community_id = #{communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4) ") List<PieElementVO> countAllNoneCompletedWorkByCommunityId(@Param("communityId")Long communityId); @Select(" SELECT AVG(b.t)AS avgTime " + " FROM (SELECT TIMESTAMPDIFF(HOUR,create_at,feedback_at) AS t FROM com_act_easy_photo WHERE community_id = #{communityId} and STATUS = 4 " + " UNION ALL SELECT TIMESTAMPDIFF(HOUR,create_at,finish_at) AS t FROM com_act_micro_wish WHERE community_id = #{communityId} and STATUS = 6 " + " )AS b ") Map<String, Object> countAvgByCommunityId(@Param("communityId")Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
@@ -9,10 +9,13 @@ import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.service.ScreenWorkService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -44,6 +47,8 @@ @Resource private ComActEasyPhotoDAO comActEasyPhotoDAO; @Resource ComActDAO comActDAO; /** * 项目开始时间,超过的不统计 @@ -210,20 +215,15 @@ List<EastPhotoVO> list = new ArrayList<>(); //统计半年数据 int n = 6; for(Map<String,String> map : listHalfYear(n)){ List<Map<String,String>> timeList = listHalfYear(n); for(Map<String,String> map : timeList){ String nowDate = DateUtils.getDateFormatString(DateUtil.parseDate(map.get("start")),moth_format_str); EastPhotoVO result = comActEasyPhotoDAO.countByTime(map.get("start"),map.get("end"),nowDate,communityId); result.setMonth(map.get("name")); list.add(result); } comActEasyPhotoScreenVO.setList(list); String fmt = "yyyy-MM-01 00:00:00"; Date start = DateUtil.parse(DateUtil.format(DateUtils.getDateM(new Date(),-n),new SimpleDateFormat(fmt))); Date initTime = DateUtil.parse(initMonth +"-01 00:00:00", DatePattern.NORM_DATETIME_FORMAT); if(!DateUtils.before(initTime,start)){ start = initTime; } comActEasyPhotoScreenVO.setListTimes(DateUtil.format(start,moth_format_ch)+"-"+DateUtil.format(DateUtils.getDateM(new Date(),-1),moth_format_ch)); comActEasyPhotoScreenVO.setListTimes(DateUtil.format(DateUtil.parse(timeList.get(0).get("start"),DatePattern.NORM_DATETIME_FORMAT),moth_format_ch)+"-"+DateUtil.format(DateUtil.parse(timeList.get(timeList.size()-1).get("start"),DatePattern.NORM_DATETIME_FORMAT),moth_format_ch)); return R.ok(comActEasyPhotoScreenVO); } @@ -234,66 +234,21 @@ public R workCount(Long communityId) { ComActWorkScreenVO comActWorkScreenVO = new ComActWorkScreenVO(); //已完成 // Map<String,Long> countMap = comActNeighborCircleDAO.countAllWorkBy(communityId); comActWorkScreenVO.setCompletetList(comActNeighborCircleDAO.countAllCompletedWorkByCommunityId(communityId)); //未完成 comActWorkScreenVO.setNoneList(comActNeighborCircleDAO.countAllNoneCompletedWorkByCommunityId(communityId)); comActWorkScreenVO.setTotalCompleted(comActWorkScreenVO.getCompletetList().stream().mapToInt(PieElementVO::getNum).sum()); comActWorkScreenVO.setTotalNoneCompleted(comActWorkScreenVO.getNoneList().stream().mapToInt(PieElementVO::getNum).sum()); 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); //统计平均耗时、平均每天完成个数 Map<String,Object> avgMap = comActNeighborCircleDAO.countAvgByCommunityId(communityId); comActWorkScreenVO.setAvgTime(avgMap.get("avgTime")==null?"0":Double.valueOf(avgMap.get("avgTime").toString()).intValue()+""); ComActDO comActDO = comActDAO.selectById(communityId); BigDecimal days = new BigDecimal(DateUtil.betweenDay(comActDO.getCreateAt(),new Date(),false)); BigDecimal num = new BigDecimal(comActWorkScreenVO.getTotalCompleted()); BigDecimal rt = num.divide(days,2,RoundingMode.HALF_UP); comActWorkScreenVO.setEveryDayNum(rt.toString()); return R.ok(comActWorkScreenVO); }