springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
@@ -168,10 +168,10 @@ AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat); // 第二部分数据 List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query,complaints,simpleDateFormat); List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat); // 第三部分数据 List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query,complaints); List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query.getRank(), complaints); // 第四部分数据 AnalyticStatisticsFourVo analyticStatisticsFourVos =complaintService.analyticStatisticsFour(complaints); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
@@ -8,7 +8,10 @@ import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery; import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsFourVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsThreeVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IdentityInformationService; import com.panzhihua.sangeshenbian.service.impl.StaticsService; @@ -36,7 +39,6 @@ @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class StaticsController extends BaseController { private final StaticsService staticsService; private final IdentityInformationService identityInformationService; @GetMapping("/region-tree") @ApiOperation("获取区域树") @@ -45,9 +47,27 @@ return R.ok(staticsService.queryRegionTree(loginUserInfo)); } @PostMapping("/part-one") @ApiOperation("获取统计分析-第一部分") @ApiOperation("获取统计分析-第一部分(处理满意率+诉求单量统计上面部分)") public R<AnalyticStatisticsOneVo> queryStaticsPartOne(@RequestBody AppStaticsQuery query) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryStaticsPartOne(query,loginUserInfo)); } @PostMapping("/part-two") @ApiOperation("获取统计分析-第二部分(诉求单量统计柱状图)") public R<List<AnalyticStatisticsTwoVo>> queryStaticsPartTwo(@RequestBody AppStaticsQuery query) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryStaticsPartTwo(query,loginUserInfo)); } @PostMapping("/part-three") @ApiOperation("获取统计分析-第三部分(问题类型排名)") public R<List<AnalyticStatisticsThreeVo>> queryStaticsPartThree(@RequestBody AppStaticsQuery query) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryStaticsPartThree(query,loginUserInfo)); } @PostMapping("/part-four") @ApiOperation("获取统计分析-第四部分(评价占比)") public R<AnalyticStatisticsFourVo> queryStaticsPartFour(@RequestBody AppStaticsQuery query) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); return R.ok(staticsService.queryStaticsPartFour(query,loginUserInfo)); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -187,21 +187,24 @@ /** * 数据统计第二部分 * @param query * * @param time * @param complaints * @param simpleDateFormat * @return */ List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat); List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat); /**+ /** * + * 数据统计第三部分 * @param query * * @param rank * @param complaints * @return */ List<AnalyticStatisticsThreeVo> analyticStatisticsThree(AnalyticStatisticsQuery query, List<Complaint> complaints); List<AnalyticStatisticsThreeVo> analyticStatisticsThree(Integer rank, List<Complaint> complaints); /** * 数据统计第四部分 @@ -212,8 +215,7 @@ /** * 查询党员或上级对应的诉求列表 * @param targetId * @param accountLevel * @param query * @param loginUserInfo * @return */ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -1551,12 +1551,17 @@ return vo; } public static void main(String[] args) { String time = "2022-02-02 - 2023-02-02"; String[] split = time.split(" - "); System.out.println(split[0]); } @Override public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) { public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) { ArrayList<AnalyticStatisticsTwoVo> list = new ArrayList<>(); try { if (StringUtils.isNotEmpty(query.getTime())) { String[] split = query.getTime().split(" - "); if (StringUtils.isNotEmpty(time)) { String[] split = time.split(" - "); Date parse = simpleDateFormat.parse(split[0] + " 00:00:00"); Date parse1 = simpleDateFormat.parse(split[1] + " 23:59:59"); complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= parse1.getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList()); @@ -1587,7 +1592,7 @@ } } else { String time = DateUtils.getBeforeDay(6) + " 00:00:00"; time = DateUtils.getBeforeDay(6) + " 00:00:00"; Date parse = simpleDateFormat.parse(time); // 近7天数据 complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= new Date().getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList()); @@ -1612,7 +1617,7 @@ } @Override public List<AnalyticStatisticsThreeVo> analyticStatisticsThree(AnalyticStatisticsQuery query, List<Complaint> complaints) { public List<AnalyticStatisticsThreeVo> analyticStatisticsThree(Integer rank, List<Complaint> complaints) { Map<String, List<Complaint>> groupedByProblemType = complaints.stream() .collect(Collectors.groupingBy(Complaint::getProblemType)); List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos = groupedByProblemType.entrySet().stream() @@ -1624,11 +1629,11 @@ }) .collect(Collectors.toList()); analyticStatisticsThreeVos = analyticStatisticsThreeVos.stream().sorted(Comparator.comparing(AnalyticStatisticsThreeVo::getAllTotal).reversed()).collect(Collectors.toList()); if (query.getRank() == null) { if (rank == null) { return analyticStatisticsThreeVos; } else if (query.getRank() == 5) { } else if (rank == 5) { return analyticStatisticsThreeVos.stream().limit(5).collect(Collectors.toList()); } else if (query.getRank() == 10) { } else if (rank == 10) { return analyticStatisticsThreeVos.stream().limit(10).collect(Collectors.toList()); } return Collections.emptyList(); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java
@@ -59,6 +59,14 @@ */ @Override public Page<PartyMember> pageList(PartyMemberQuery query, SystemUserVo loginUserInfo) { SystemUser user = systemUserService.getById(loginUserInfo.getId()); if (Objects.isNull(user)){ throw new ServiceException("用户不存在"); } loginUserInfo.setAccountLevel(user.getAccountLevel()); loginUserInfo.setDistrictsCode(user.getDistrictsCode()); loginUserInfo.setStreetId(user.getStreetId()); loginUserInfo.setCommunityId(user.getCommunityId()); return baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()),query,loginUserInfo); // 判断当前登录用户是否有权限查看这个社区的党员 // if(loginUserInfo.getAccountLevel()==1){ @@ -146,6 +154,14 @@ */ @Override public void export(PartyMemberQuery query, SystemUserVo loginUserInfo) throws IOException { SystemUser user = systemUserService.getById(loginUserInfo.getId()); if (Objects.isNull(user)){ throw new ServiceException("用户不存在"); } loginUserInfo.setAccountLevel(user.getAccountLevel()); loginUserInfo.setDistrictsCode(user.getDistrictsCode()); loginUserInfo.setStreetId(user.getStreetId()); loginUserInfo.setCommunityId(user.getCommunityId()); List<PartyMember> list = baseMapper.queryList(query,loginUserInfo); List<PartyMemberExcel> partyMemberExcels = BeanUtil.copyToList(list, PartyMemberExcel.class); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java
@@ -1,17 +1,18 @@ package com.panzhihua.sangeshenbian.service.impl; import com.beust.jcommander.internal.Lists; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.sangeshenbian.dao.SystemUserMapper; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.panzhihua.sangeshenbian.model.entity.ComStreet; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.sangeshenbian.model.entity.PartyMember; import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel; import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsFourVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsThreeVo; import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IBcRegionService; import com.panzhihua.sangeshenbian.service.IComActService; @@ -24,9 +25,10 @@ import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Objects; /** * @author mitao @@ -139,4 +141,58 @@ List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo); return complaintService.analyticStatisticsOne(null, complaints, simpleDateFormat); } /** *获取统计分析-第二部分(诉求单量统计柱状图) * @param query * @param loginUserInfo * @return */ public List<AnalyticStatisticsTwoVo> queryStaticsPartTwo(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) { List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo); //时间范围 String time = ""; if (Objects.nonNull(query.getTimeType())) { Date now = new Date(); Date start = null; switch (query.getTimeType()) { case 2: start = DateUtils.addDay(now, -15); break; case 3: start = DateUtils.addDay(now, -30); break; default: start = DateUtils.addDay(now, -7); break; } //格式化 String startStr = DateUtils.format(start, DateUtils.yyyyMMdd_format); String endStr = DateUtils.format(now, DateUtils.yyyyMMdd_format); time = startStr + " - " + endStr; } return complaintService.analyticStatisticsTwo(time, complaints, simpleDateFormat); } /** *获取统计分析-第三部分(问题类型排名) * @param query * @param loginUserInfo * @return */ public List<AnalyticStatisticsThreeVo> queryStaticsPartThree(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) { List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo); return complaintService.analyticStatisticsThree(query.getRank(), complaints); } /** * 获取统计分析-第四部分(评价占比) * @param query * @param loginUserInfo * @return */ public AnalyticStatisticsFourVo queryStaticsPartFour(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) { List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo); return complaintService.analyticStatisticsFour(complaints); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -1,5 +1,6 @@ package com.panzhihua.sangeshenbian.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,18 @@ import com.panzhihua.sangeshenbian.dao.SystemUserLevelMapper; import com.panzhihua.sangeshenbian.dao.SystemUserMapper; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.panzhihua.sangeshenbian.model.entity.ComStreet; import com.panzhihua.sangeshenbian.model.entity.PartyMember; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IComActService; import com.panzhihua.sangeshenbian.service.IComStreetService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.warpper.SystemUserList; import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -30,11 +35,13 @@ * @author zhibing.pu * @Date 2025/2/18 22:30 */ @Slf4j @Service @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemUser> implements ISystemUserService { private final IComActService comActService; private final SystemUserLevelMapper systemUserLevelMapper; private final IComStreetService comStreetService; /** * 获取列表数据 * @param query @@ -119,7 +126,9 @@ */ @Override public List<RegionVO> getRegionTree(SystemUserVo loginUserInfo) { Integer accountLevel = loginUserInfo.getAccountLevel(); log.info("getRegionTree入参:{}",JSONObject.toJSONString(loginUserInfo)); SystemUser systemUser = getById(loginUserInfo.getId()); Integer accountLevel = systemUser.getAccountLevel(); List<RegionVO> regionTree = new ArrayList<>(); switch (accountLevel) { case 1: @@ -135,17 +144,23 @@ }); break; case 2: regionTree = baseMapper.getStreet(loginUserInfo.getDistrictsCode()); regionTree = baseMapper.getStreet(systemUser.getDistrictsCode()); regionTree.forEach(regionVO->{ List<RegionVO> communities = baseMapper.getCommunity(regionVO.getId()); regionVO.setChildren(communities); }); break; case 3: regionTree = baseMapper.getCommunity(loginUserInfo.getStreetId()); ComStreet street = comStreetService.getById(systemUser.getStreetId()); RegionVO streetVO = new RegionVO(); streetVO.setId(street.getStreetId()); streetVO.setName(street.getName()); List<RegionVO> communities = baseMapper.getCommunity(systemUser.getStreetId()); streetVO.setChildren(communities); regionTree = Lists.newArrayList(streetVO); break; case 4: ComAct byId = comActService.getById(loginUserInfo.getCommunityId()); ComAct byId = comActService.getById(systemUser.getCommunityId()); RegionVO regionVO = new RegionVO(); regionVO.setId(byId.getCommunityId().toString()); regionVO.setName(byId.getName()); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -720,6 +720,19 @@ <if test="5 == accountLevel"> and (sc.party_member_id = #{targetId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId})) </if> <if test="query.timeType !=null"> <choose> <when test="query.timeType == 1"> and date_sub(curdate(), INTERVAL 7 DAY) <= date(sc.create_time) </when> <when test="query.timeType == 2"> and date_sub(curdate(), INTERVAL 15 DAY) <= date(sc.create_time) </when> <when test="query.timeType == 3"> and date_sub(curdate(), INTERVAL 30 DAY) <= date(sc.create_time) </when> </choose> </if> </where> ORDER BY sc.create_time DESC </select> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/PartyMemberMapper.xml
@@ -147,7 +147,7 @@ FROM sgsb_party_member WHERE audit_status = 0 and phone != ${phone} and del_flag = 0 audit_status = 0 and del_flag = 0 <if test="accountLevel==2"> and districts_code = #{districtsCode} </if>