张天森
2023-02-06 2e2bcc55ea6eb6fd63dae451bdd26f4b9875db40
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
@@ -6,6 +6,16 @@
import javax.annotation.Resource;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panzhihua.common.model.vos.DateVO;
import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
import com.panzhihua.common.model.vos.puda.BasicDataVO;
import com.panzhihua.common.model.vos.puda.CitizenInfoVO;
import com.panzhihua.common.model.vos.puda.DynamicVO;
import com.panzhihua.common.model.vos.puda.SpecialPeopleVO;
import com.panzhihua.common.service.community.CommunityService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -47,6 +57,10 @@
    private ComPbDynDAO comPbDynDAO;
    @Resource
    private ComActEasyPhotoDAO comActEasyPhotoDAO;
    @Resource
    private ComScreenDao comScreenDao;
    @Resource
    private CommunityService communityService;
    @Override
    public R statisticNeighborCircle(Long communityId) {
@@ -317,6 +331,78 @@
        return R.ok(workScreenVO);
    }
    @Override
    public R autonomyDynamic(Long communityId) {
        DynamicVO dynamicVO =comScreenDao.autonomyDynamic(communityId);
        return R.ok(dynamicVO);
    }
    @Override
    public R property(Long communityId) {
        return R.ok(comScreenDao.propertyData(communityId));
    }
    @Override
    public R partyData(Long communityId) {
        return R.ok(comScreenDao.partyData(communityId));
    }
    @Override
    public R yard(Long communityId) {
        return R.ok(comScreenDao.yard(communityId));
    }
    @Override
    public R citizenInfo(Long communityId) {
        DateVO vo=new DateVO();
        //当前日期
        vo.setNow(DateUtil.now());
        //16年前
        vo.setOffset16(DateUtil.offsetMonth(DateUtil.date(), -192).toDateStr());
        //27年前
        vo.setOffset27(DateUtil.offsetMonth(DateUtil.date(), -324).toDateStr());
        //35年前
        vo.setOffset35(DateUtil.offsetMonth(DateUtil.date(), -420).toDateStr());
        //45年前
        vo.setOffset45(DateUtil.offsetMonth(DateUtil.date(), -540).toDateStr());
        //55年前
        vo.setOffset55(DateUtil.offsetMonth(DateUtil.date(), -660).toDateStr());
        CitizenInfoVO citizenInfoVO = comScreenDao.ageRange(vo);
        citizenInfoVO.setTotal(comScreenDao.peopleInfoAdmin(communityId).getPopulationNum());
        citizenInfoVO.setMaleRate(NumberUtil.div(citizenInfoVO.getMaleNum(), citizenInfoVO.getTotal(), 2));
        citizenInfoVO.setFemaleRate(NumberUtil.div(citizenInfoVO.getFemaleNum(), citizenInfoVO.getTotal(), 2));
        //男性占比
        return R.ok(citizenInfoVO);
    }
    @Override
    public R specialPeople(Long communityId) {
        SpecialPeopleVO vo=new SpecialPeopleVO();
        vo.setTotal(0);
        List<SpecialPeopleVO> specialPeopleVOS = comScreenDao.specialPeople(communityId);
        //求和
        for (SpecialPeopleVO specialPeopleVO : specialPeopleVOS) {
            vo.setTotal(vo.getTotal()+specialPeopleVO.getCount());
        }
        //计算占比
        for (SpecialPeopleVO specialPeopleVO : specialPeopleVOS) {
            specialPeopleVO.setRate(NumberUtil.div(specialPeopleVO.getCount(),vo.getTotal() ,2 ));
        }
        vo.setChildList(specialPeopleVOS);
        return R.ok(vo);
    }
    @Override
    public R basicData(Long communityId) {
        //PageBuildingListAdminVo pageBuildingListAdminVo = comScreenDao.peopleInfoAdmin(communityId);
        R r = communityService.buildingListHeaderStatisticsAdmin(communityId);
        BuildingListHeaderStatisticsAdminVo buildingListHeaderStatisticsAdminVo = (BuildingListHeaderStatisticsAdminVo)r.getData();
        BasicDataVO vo=new BasicDataVO();
        vo.setPeople(buildingListHeaderStatisticsAdminVo.getPopulationNum());
        vo.setBuildings(buildingListHeaderStatisticsAdminVo.getBuildNum());
        return R.ok(vo);
    }
    private List<DynamicWorkVO> listHalfYearByDyn() {
        List<DynamicWorkVO> dateList = new ArrayList<>();
        Date now = new Date();