Compare commits

...

7 Commits

  1. 140
      src/main/java/com/biutag/supervision/controller/datav/DataVSupervisionNotifyController.java
  2. 28
      src/main/java/com/biutag/supervision/controller/datav/DataVVideoSuperviseController.java
  3. 41
      src/main/java/com/biutag/supervision/mapper/NegativeMapper.java
  4. 10
      src/main/java/com/biutag/supervision/pojo/param/SuperviseReportQueryParam.java
  5. 8
      src/main/java/com/biutag/supervision/pojo/vo/DayTimeSuperviseVo.java
  6. 27
      src/main/java/com/biutag/supervision/pojo/vo/SupervisionNotifyOverView.java
  7. 1
      src/main/java/com/biutag/supervision/service/BusinessDepartService.java
  8. 2
      src/main/java/com/biutag/supervision/service/DataMailService.java
  9. 2
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  10. 3
      src/main/java/com/biutag/supervision/service/SuperviseReportService.java
  11. 55
      src/main/java/com/biutag/supervision/service/VideoSuperviseService.java
  12. 22
      src/main/java/com/biutag/supervision/service/datav/DatavService.java
  13. 370
      src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java

140
src/main/java/com/biutag/supervision/controller/datav/DataVSupervisionNotifyController.java

@ -1,46 +1,23 @@
package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.AppConstants;
import com.biutag.supervision.constants.enums.InspectCaseEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.constants.enums.RoleCodeEnum;
import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.News;
import com.biutag.supervision.pojo.entity.SuperviseReport;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.request.datav.DataVRequest;
import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.NewsService;
import com.biutag.supervision.service.SupDepartService;
import com.biutag.supervision.service.SuperviseReportService;
import com.biutag.supervision.util.CompletableUtils.CompletableFutureUtil;
import com.biutag.supervision.service.datav.DatavService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.format.annotation.DateTimeFormat;
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 org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import static com.biutag.supervision.constants.WorkDynamicConstants.DCGZDT;
import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.*;
@ -59,57 +36,17 @@ public class DataVSupervisionNotifyController {
private final NegativeMapper negativeMapper;
private final NewsService newsService;
private final NegativeBlameService negativeBlameService;
private final SuperviseReportService superviseReportService;
private final SupDepartService departService;
private final DatavService datavService;
// region 左边
/**
* 获取日常督察情况
*
* @param beginTime 开始时间
* @param endTime 结束时间
* @return
*/
@Operation(summary = "日常督察情况")
@GetMapping("/getChangedRank")
public Result<JSONObject> getChangedRank(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime= DateUtil.endOfDay(endTime);
DayTimeSuperviseVo fxsjRankOverview = negativeMapper.getSupervisionRank(beginTime, endTime, 3);
DayTimeSuperviseVo jsdwRankOverview = negativeMapper.getSupervisionRank(beginTime, endTime, 4);
DayTimeSuperviseVo overview = new DayTimeSuperviseVo().addVO(fxsjRankOverview,jsdwRankOverview);
DayTimeSuperviseVo total = negativeMapper.getProTotalFun(beginTime, endTime);
if(ObjectUtil.isNotEmpty(total.getProTotal())){
overview.setProTotal(total.getProTotal());
@Operation(summary = "现场督察卡片")
@PostMapping("/getChangedRank")
public Result<JSONObject> getChangedRank(@RequestBody DataVRequest request) {
return datavService.getChangedRank(request);
}
List<RankVo> fxsjChangedRankList = negativeMapper.getChangedRateRank(beginTime, endTime, 3);
List<RankVo> jsdwChangedRankList = negativeMapper.getChangedRateRank(beginTime, endTime, 4);
JSONObject data = new JSONObject()
.fluentPut("fxsjRankOverview", fxsjRankOverview)
.fluentPut("jsdwRankOverview", jsdwRankOverview)
.fluentPut("fxsjChangedRankList", fxsjChangedRankList)
.fluentPut("jsdwChangedRankList", jsdwChangedRankList)
.fluentPut("overview",overview);
return Result.success(data);
}
/**
* 问题类型占比
*
* @param beginTime 开始时间
* @param endTime 结束时间
* @return
*/
@Operation(summary = "问题类型占比")
@GetMapping("/getProblemTypeRate")
public Result<JSONObject> getProblemTypeRate(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@ -120,67 +57,14 @@ public class DataVSupervisionNotifyController {
}
/**
* 获取现场督察大屏中央总览
*
* @param beginTime 开始时间
* @param endTime 结束时间
* @return
*/
@Operation(summary = "中央总览数据")
@GetMapping("/getSupervisionNotifyCount")
public Result<SupervisionNotifyOverView> getSupervisionNotifyCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
////, ProblemSourcesEnum.SPDC.getValue() 去除视频督察
List<Negative> negatives = negativeMapper.selectList(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime)
.in(Negative::getProblemSourcesCode, List.of(ProblemSourcesEnum.XCDC.getValue(), ProblemSourcesEnum.LMGZ.getValue(), ProblemSourcesEnum.ZXDC.getValue())));
SupervisionNotifyOverView overView = new SupervisionNotifyOverView();
List<String> negativeIds = negatives.stream().filter(item -> InspectCaseEnum.isItTure(item.getCheckStatus())).map(Negative::getId).toList();
overView.setProblemNumber(negatives.size());
overView.setCompletedNumber(negatives.stream().filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())).count());
//问题期数
Long problemQuarter = superviseReportService.count(new LambdaQueryWrapper<SuperviseReport>().between(SuperviseReport::getCrtTime,beginTime,endTime));
overView.setProblemQuarter(problemQuarter);
overView.setProcessingNumber(negatives.size() - overView.getCompletedNumber());
// 办结率
overView.setCompletedRate(overView.getProblemNumber() == 0 ? 0: NumberUtil.roundHalfEven(NumberUtil.mul(NumberUtil.div(overView.getCompletedNumber(), overView.getProblemNumber()), 100), 0).doubleValue());
QueryWrapper<SuperviseReport> queryWrapper = new QueryWrapper<>();
UserAuth user = UserContextHolder.getCurrentUser();
// 权限
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) {
if (user.getAuthDepartIds().isEmpty() || user.getRoleCodes().isEmpty()) {
//特殊处理
overView.setReportNumber(0L);
}
List<String> orgIds = departService.getAllNodeIds(user.getAuthDepartIds());
queryWrapper.in("t.crt_depart_id", orgIds);
@Operation(summary = "中央总览数据")
@PostMapping("/getSupervisionNotifyCount")
public Result<SupervisionNotifyOverView> getSupervisionNotifyCount(@RequestBody DataVRequest request) {
return datavService.getSupervisionNotifyCount(request);
}
overView.setReportNumber(superviseReportService.count(queryWrapper));
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> {
long personNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getType, "personal")
.ne(NegativeBlame::getHandleResultName, "不予追责")
.isNotNull(NegativeBlame::getHandleResultName)
.ne(NegativeBlame::getHandleResultName, ""));
overView.setPersonNumber(personNumber);
}),
CompletableFutureUtil.runSyncObject(() -> {
long departNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getType, "department")
.ne(NegativeBlame::getHandleResultName, "不予追责")
.isNotNull(NegativeBlame::getHandleResultName)
.ne(NegativeBlame::getHandleResultName, ""));
overView.setDepartNumber(departNumber);
})
).join();
return Result.success(overView);
}
/**
* 地图小卡片

28
src/main/java/com/biutag/supervision/controller/datav/DataVVideoSuperviseController.java

@ -14,20 +14,19 @@ import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.SupPolice;
import com.biutag.supervision.pojo.entity.WvpDeviceChannel;
import com.biutag.supervision.pojo.request.datav.DataVRequest;
import com.biutag.supervision.pojo.vo.EchartsVo;
import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo;
import com.biutag.supervision.pojo.vo.VideoSuperviseCountVo;
import com.biutag.supervision.pojo.vo.VideoSuperviseMapIconVo;
import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.SupPoliceService;
import com.biutag.supervision.service.datav.DatavService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
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 org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.stream.Collectors;
@ -50,6 +49,7 @@ public class DataVVideoSuperviseController {
private final WvpDeviceChannelMapper wvpDeviceChannelMapper;
private final SupPoliceService policeService;
private final DatavService datavService;
//region 左边
@ -81,24 +81,10 @@ public class DataVVideoSuperviseController {
return Result.success(data);
}
/**
* 获取视频督察大屏问题数排名
*
* @param beginTime 开始时间
* @param endTime 结束时间
* @return
*/
@Operation(summary = "问题数排名")
@GetMapping("/getVideoSuperviseProblemRank")
public Result<JSONObject> getVideoSuperviseProblemRank(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
List<OrganizeProblemRankVo> fxsjVideoSuperviseProblemRankList = negativeMapper.getVideoSuperviseProblemRank(beginTime, endTime, 3);
List<OrganizeProblemRankVo> jsdwVideoSuperviseProblemRankList = negativeMapper.getVideoSuperviseProblemRank(beginTime, endTime, 4);
JSONObject data = new JSONObject();
data.fluentPut("fxsjVideoSuperviseProblemRankList", fxsjVideoSuperviseProblemRankList);
data.fluentPut("jsdwVideoSuperviseProblemRankList", jsdwVideoSuperviseProblemRankList);
return Result.success(data);
@PostMapping("/getVideoSuperviseProblemRank")
public Result<JSONObject> getVideoSuperviseProblemRank(@RequestBody DataVRequest request) {
return datavService.getVideoSuperviseProblemRank(request);
}
//endregion

41
src/main/java/com/biutag/supervision/mapper/NegativeMapper.java

@ -361,19 +361,21 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"GROUP BY npr.threeLevelContent ")
List<EchartsVo> getVideoSuperviseProblemTypeRate(Date beginTime, Date endTime);
@Select("SELECT d.short_name AS label, " +
"count(ng.id) as `value`," +
" COUNT(DISTINCT IF(ng.crt_depart_level = 0, ng.id, null)) as cityNumber, "+
" COUNT(DISTINCT IF(ng.crt_depart_level = 2, ng.id, null)) as countyNumber "+
" FROM negative ng " +
"INNER JOIN sup_depart d ON ng.second_involve_depart_id = d.id " +
"WHERE ng.checkStatus in (1, 2) " +
"AND ng.problemSourcesCode = 16 " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND d.statistics_group_id = #{groupId} " +
"GROUP BY d.short_name " +
"ORDER BY `value` DESC")
List<OrganizeProblemRankVo> getVideoSuperviseProblemRank(Date beginTime, Date endTime, Integer groupId);
@Select("select * from negative ng " +
"LEFT JOIN sup_depart sd on ng.involveDepartId = sd.id " +
"LEFT JOIN sup_depart sdd on sd.pid = sdd.id " +
"LEFT JOIN sup_depart sddd on sdd.pid = sddd.id " +
"where " +
"ng.check_status_code in (1, 2, 3) " +
"and ng.problemSourcesCode =16 " +
"and ng.crtTime >= #{beginTime} " +
"and ng.crtTime <= #{endTime} " +
"AND (sd.id =#{id} OR sdd.id=#{id} or sddd.id=#{id});"
)
List<Negative> getVideoSuperviseProblemRank(String id, Date beginTime, Date endTime);
@Select("SELECT " +
" d.short_name name, " +
@ -1068,5 +1070,18 @@ public interface NegativeMapper extends BaseMapper<Negative> {
List<OrganizeProblemRankVo> getOrganizationRank(NegativeOrganizationRankQueryParam param);
@Select("select * from negative ng " +
"LEFT JOIN sup_depart sd on ng.involveDepartId = sd.id " +
"LEFT JOIN sup_depart sdd on sd.pid = sdd.id " +
"LEFT JOIN sup_depart sddd on sdd.pid = sddd.id " +
"where " +
"ng.problemSourcesCode =13 " +
"and ng.crtTime >= #{beginTime} " +
"and ng.crtTime <= #{endTime} " +
"AND (sd.id =#{id} OR sdd.id=#{id} or sddd.id=#{id});"
)
List<Negative> getChangedRank(String id, Date beginTime, Date endTime);
// endregion
}

10
src/main/java/com/biutag/supervision/pojo/param/SuperviseReportQueryParam.java

@ -1,7 +1,13 @@
package com.biutag.supervision.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Setter
@Getter
@ -16,4 +22,8 @@ public class SuperviseReportQueryParam extends BasePage{
private String deptId;
private Integer type;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> crtTime = new ArrayList<>();
}

8
src/main/java/com/biutag/supervision/pojo/vo/DayTimeSuperviseVo.java

@ -1,6 +1,7 @@
package com.biutag.supervision.pojo.vo;
import cn.hutool.core.util.NumberUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -17,10 +18,17 @@ import java.math.RoundingMode;
@AllArgsConstructor
@NoArgsConstructor
public class DayTimeSuperviseVo {
@Schema(description = "问题数")
private Integer proTotal;
@Schema(description = "办理中")
private Long processingNumber;
@Schema(description = "已办结")
private Long completedNumber;
@Schema(description = "办结率")
private Double completedRate;
private Long changing;

27
src/main/java/com/biutag/supervision/pojo/vo/SupervisionNotifyOverView.java

@ -1,5 +1,6 @@
package com.biutag.supervision.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@ -9,21 +10,31 @@ import lombok.Data;
*/
@Data
public class SupervisionNotifyOverView {
// 问题数
@Schema(description = "通报问题数")
private Integer problemNumber;
@Schema(description = "通报期数")
private Long reportNumber;
//问题期数
private Long problemQuarter;
// 办理中
@Schema(description = "办理中")
private Long processingNumber;
// 已办结
@Schema(description = "已办结")
private Long completedNumber;
// 问责单位数
@Schema(description = "问责单位数")
private Long departNumber;
// 问责人数
@Schema(description = "问责人数")
private Long personNumber;
// 办结率
@Schema(description = "办结率")
private Double completedRate;
// 通报数
private Long reportNumber;
}

1
src/main/java/com/biutag/supervision/service/BusinessDepartService.java

@ -329,6 +329,7 @@ public class BusinessDepartService extends ServiceImpl<BusinessDepartMapper, Bus
queryWrapper.between("cjsj", happenTime.get(0), happenTime.get(1));
queryWrapper.notLikeRight("jqxzdm", "11"); // 其他业务
queryWrapper.notLikeRight("jqxzdm", "99"); // 无效、重复报警等
// queryWrapper.eq("jjlxdm", "01");
queryWrapper.groupBy("DATE(cjsj)", "gxdwdm", "gxdwmc");
return gBaseJJDMapper.selectJJDList(queryWrapper);
}

2
src/main/java/com/biutag/supervision/service/DataMailService.java

@ -70,7 +70,7 @@ public class DataMailService extends ServiceImpl<DataPetitionComplaintMapper, Da
// 局长信箱
QueryWrapper<Mail> mailQueryWrapper = new QueryWrapper<>();
mailQueryWrapper.ne("mail_state", VALID_SIGN);
mailQueryWrapper.between("create_time", beginTime, endTime);
mailQueryWrapper.between("mail_time", beginTime, endTime);
Long mailCount = mailMapper.selectCount(mailQueryWrapper);
temp.setCountryMail(countryMail);

2
src/main/java/com/biutag/supervision/service/NegativeTaskService.java

@ -105,7 +105,7 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
.toLocalDate()
.format(formatter);
task.setTaskName(String.format("分析报告_%s_%s", start, end));
task.setImportRow(-1);
task.setImportRow(1);
task.setCrtTime(LocalDateTime.now());
task.setStatus(NegativeTaskStatusEnum.PADDING.getValue());
task.setCategory(NegativeTaskCategoryEnum.EXPORT.getValue());

3
src/main/java/com/biutag/supervision/service/SuperviseReportService.java

@ -57,6 +57,9 @@ public class SuperviseReportService extends ServiceImpl<SuperviseReportMapper, S
List<String> orgIds = departService.getAllNodeIds(queryParam.getDeptId());
queryWrapper.in("t.crt_depart_id", orgIds);
}
if (CollectionUtil.isNotEmpty(queryParam.getCrtTime())){
queryWrapper.between("t.crt_time", queryParam.getCrtTime().get(0), queryParam.getCrtTime().get(1));
}
//查询条件
queryWrapper
.eq(Objects.nonNull(queryParam.getType()), "t.type", queryParam.getType())

55
src/main/java/com/biutag/supervision/service/VideoSuperviseService.java

@ -1,55 +0,0 @@
package com.biutag.supervision.service;
import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.pojo.vo.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 视频督察服务层
*/
@RequiredArgsConstructor
@Service
public class VideoSuperviseService {
private final NegativeMapper negativeMapper;
//region 左边
public List<OrganizeProblemRankVo> getVideoSuperviseProblemRank(Date beginTime, Date endTime, Integer groupId) {
List<OrganizeProblemRankVo> res = negativeMapper.getVideoSuperviseProblemRank(beginTime, endTime, groupId);
return res;
}
//endregion
//region 中间
public VideoSuperviseCountVo getAllVideoSuperviseCount(Date beginTime, Date endTime) {
VideoSuperviseCountVo res = negativeMapper.getAllVideoSuperviseCount(beginTime, endTime);
return res;
}
public List<VideoSuperviseMapIconVo> getVideoSuperviseMapIconInfo(Date beginTime, Date endTime) {
List<VideoSuperviseMapIconVo> res = negativeMapper.getVideoSuperviseMapIconInfo(beginTime, endTime);
return res;
}
// public List<EchartsVo> getVideoSuperviseTrend(String year, String... args) {
// List<EchartsVo> res = negativeMapper.getVideoSuperviseTrend(year, args);
// return res;
// }
//endregion
//region
public List<EchartsVo> getVideoSuperviseProblemTypeRate(Date beginTime, Date endTime) {
List<EchartsVo> res = negativeMapper.getVideoSuperviseProblemTypeRate(beginTime, endTime);
return res;
}
//endregion
}

22
src/main/java/com/biutag/supervision/service/datav/DatavService.java

@ -5,6 +5,7 @@ import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.request.datav.DataVRequest;
import com.biutag.supervision.pojo.request.subdatav.SubDataVRequest;
import com.biutag.supervision.pojo.vo.AuditOverview;
import com.biutag.supervision.pojo.vo.SupervisionNotifyOverView;
/**
* @ClassName DatavService
@ -206,4 +207,25 @@ public interface DatavService {
* @return
*/
Result<JSONObject> getSubOneMailMapIcon(SubDataVRequest request);
/**
* 视频督察一级大屏问题排名
* @param request
* @return
*/
Result<JSONObject> getVideoSuperviseProblemRank(DataVRequest request);
/**
* 现场专项一级大屏 现场督察卡片
* @param request
* @return
*/
Result<JSONObject> getChangedRank(DataVRequest request);
/**
* 现场专项总览
* @param request
* @return
*/
Result<SupervisionNotifyOverView> getSupervisionNotifyCount(DataVRequest request);
}

370
src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java

@ -6,6 +6,8 @@ import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.AppConstants;
import com.biutag.supervision.constants.enums.*;
import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum;
import com.biutag.supervision.constants.enums.invest.ReportProjectNodeEnum;
@ -17,6 +19,7 @@ import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.entity.mailbox.Mail;
import com.biutag.supervision.pojo.entity.report.ReportProject;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.*;
import com.biutag.supervision.pojo.param.dataAudit.DataAuditQueryParam;
import com.biutag.supervision.pojo.request.datav.DataVRequest;
@ -31,18 +34,19 @@ import com.biutag.supervision.repository.reportproject.ReportProjectResourceServ
import com.biutag.supervision.repository.supExternalDepart.SupExternalDepartResourceService;
import com.biutag.supervision.repository.supdepart.SupDepartResourceService;
import com.biutag.supervision.service.*;
import com.biutag.supervision.util.CompletableUtils.CompletableFutureUtil;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.ZoneId;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.biutag.supervision.constants.enums.DepartGroupEnum.COUNTY_CITY_BUREAUS;
import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.*;
/**
@ -125,6 +129,14 @@ public class DatavServiceImpl implements DatavService {
@Resource
private SupDepartMapper supDepartMapper;
@Resource
private NegativeMapper negativeMapper;
@Resource
private SuperviseReportService superviseReportService;
private final String VALID_SIGN = "terminated";
private final String EX_SOURCE = "局长信箱";
@ -588,7 +600,7 @@ public class DatavServiceImpl implements DatavService {
List<SupDepart> bwzdDw = supDepartResourceService.query(supDepartQueryParam);
for (SupDepart supDepart : fxsjDw) {
List<RpcApply> rpcApplyList = rpcApplyMapper.selectRightsList(supDepart.getId(), request.getBeginTime(), request.getEndTime());
if (CollectionUtil.isNotEmpty(rpcApplyList)){
if (CollectionUtil.isNotEmpty(rpcApplyList)) {
BarItem barItem = new BarItem(supDepart.getShortName(), new BigDecimal(rpcApplyList.size()));
countyRightsBarList.add(barItem);
}
@ -596,7 +608,7 @@ public class DatavServiceImpl implements DatavService {
for (SupDepart supDepart : bwzdDw) {
List<RpcApply> rpcApplyList = rpcApplyMapper.selectRightsList(supDepart.getId(), request.getBeginTime(), request.getEndTime());
if (CollectionUtil.isNotEmpty(rpcApplyList)){
if (CollectionUtil.isNotEmpty(rpcApplyList)) {
BarItem barItem = new BarItem(supDepart.getShortName(), new BigDecimal(rpcApplyList.size()));
bureauRightsBarList.add(barItem);
}
@ -624,7 +636,7 @@ public class DatavServiceImpl implements DatavService {
Date beginTime = request.getBeginTime();
Date endTime = request.getEndTime();
// 发案环节
List<EchartsVo> incidentLinkList =rpcApplyMapper.getIncidentLink(beginTime, endTime);
List<EchartsVo> incidentLinkList = rpcApplyMapper.getIncidentLink(beginTime, endTime);
// 发案警种
List<EchartsVo> incidentPoliceList = rpcApplyMapper.getIncidentPolice(beginTime, endTime);
// 发案单位
@ -634,7 +646,7 @@ public class DatavServiceImpl implements DatavService {
List<EchartsVo> incidentOrgList = new ArrayList<>();
for (SupDepart supDepart : fxsjDw) {
List<RpcApply> rpcApplyList = rpcApplyMapper.getIncidentOrg(beginTime, endTime, supDepart.getId());
if (CollectionUtil.isNotEmpty(rpcApplyList)){
if (CollectionUtil.isNotEmpty(rpcApplyList)) {
EchartsVo barItem = new EchartsVo(supDepart.getShortName(), rpcApplyList.size());
incidentOrgList.add(barItem);
}
@ -656,19 +668,20 @@ public class DatavServiceImpl implements DatavService {
/**
* 维权抚慰 二级大屏 维权案件情况
*
* @param request
* @return
*/
@Override
public Result<JSONObject> getSubRightsBarList(SubDataVRequest request) {
// 维权案件情况 - 派出所
List<BarItem> pcsList = rpcApplyMapper.selectSubPcsProtectRightsBarList(request.getBeginTime(), request.getEndTime(), Integer.valueOf(request.getDepartId()),10);
List<BarItem> pcsList = rpcApplyMapper.selectSubPcsProtectRightsBarList(request.getBeginTime(), request.getEndTime(), Integer.valueOf(request.getDepartId()), 10);
// 维权案件情况 - 大队
List<BarItem> dbList = rpcApplyMapper.selectSubDdProtectRightsBarList(request.getBeginTime(), request.getEndTime(), Integer.valueOf(request.getDepartId()),10);
List<BarItem> dbList = rpcApplyMapper.selectSubDdProtectRightsBarList(request.getBeginTime(), request.getEndTime(), Integer.valueOf(request.getDepartId()), 10);
JSONObject data = new JSONObject()
.fluentPut("fxsjRightsRankList",pcsList)
.fluentPut("jsdwRightsRankList",dbList);
.fluentPut("fxsjRightsRankList", pcsList)
.fluentPut("jsdwRightsRankList", dbList);
return Result.success(data);
}
@ -678,18 +691,18 @@ public class DatavServiceImpl implements DatavService {
List<BarItem> fxsjComfortMoneyRank = rpcApplyMapper.getSubPcComfortMoneyBarList(request.getBeginTime(), request.getEndTime(), request.getDepartId(), 10);
List<BarItem> jsdwComfortMoneyRank = rpcApplyMapper.getSubDdComfortMoneyBarList(request.getBeginTime(), request.getEndTime(), request.getDepartId(), 10);
JSONObject data = new JSONObject()
.fluentPut("fxsjComfortMoneyRank",fxsjComfortMoneyRank)
.fluentPut("jsdwComfortMoneyRank",jsdwComfortMoneyRank);
.fluentPut("fxsjComfortMoneyRank", fxsjComfortMoneyRank)
.fluentPut("jsdwComfortMoneyRank", jsdwComfortMoneyRank);
return Result.success(data);
}
@Override
public Result<JSONObject> getSubCaseType(SubDataVRequest request) {
List<EchartsVo> crownCaseBar =rpcApplyMapper.selectSubCaseData(request.getBeginTime(), request.getEndTime(),"1",Integer.valueOf(request.getDepartId()));
List<EchartsVo> crownCaseBar = rpcApplyMapper.selectSubCaseData(request.getBeginTime(), request.getEndTime(), "1", Integer.valueOf(request.getDepartId()));
//案件类别 - 行政
List<EchartsVo> administrativeCase = rpcApplyMapper.selectSubCaseData(request.getBeginTime(), request.getEndTime(),"2",Integer.valueOf(request.getDepartId()));
JSONObject data = new JSONObject().fluentPut("crownCaseBar",crownCaseBar).fluentPut("administrativeCase",administrativeCase);
List<EchartsVo> administrativeCase = rpcApplyMapper.selectSubCaseData(request.getBeginTime(), request.getEndTime(), "2", Integer.valueOf(request.getDepartId()));
JSONObject data = new JSONObject().fluentPut("crownCaseBar", crownCaseBar).fluentPut("administrativeCase", administrativeCase);
return Result.success(data);
}
@ -703,7 +716,7 @@ public class DatavServiceImpl implements DatavService {
@Override
public Result<JSONObject> getSubHitState(SubDataVRequest request) {
List<PieItem> pieItems = rpcApplyMapper.getSubHitState(request.getBeginTime(), request.getEndTime(), request.getDepartId());
JSONObject data = new JSONObject().fluentPut("PunishmentSituation",pieItems);
JSONObject data = new JSONObject().fluentPut("PunishmentSituation", pieItems);
return Result.success(data);
}
@ -744,9 +757,9 @@ public class DatavServiceImpl implements DatavService {
.filter(s -> s.contains(","))
.mapToLong(s -> s.split(",").length) // 拆分每个名称并计算拆分后的数组长度
.sum();// 计算所有拆分后数组长度的总和
if(tortNames.stream().noneMatch(s -> s.contains(","))){
if (tortNames.stream().noneMatch(s -> s.contains(","))) {
comfortOverview.setHitTotal(initialListSize);
}else{
} else {
comfortOverview.setHitTotal(initialListSize + nums - hitPersonNumber);
}
comfortOverview.setComfortMoney(rpcApplyMapper.selectMapComfortMoney(beginTime, endTime, departId));
@ -756,7 +769,6 @@ public class DatavServiceImpl implements DatavService {
}
@Override
public Result<JSONObject> getFirstAndRepeatMail(DataVRequest request) {
Date beginTime = request.getBeginTime();
@ -849,7 +861,7 @@ public class DatavServiceImpl implements DatavService {
// 公安信访
Long policeTotal = dataPetitionComplaintMapper.selectMailBySourceCode(beginTime, endTime, GABXF.getValue(), departId);
// 12337
Long numTotal = dataPetition12337Service.count(new LambdaQueryWrapper<DataPetition12337>().between(DataPetition12337::getDiscoverTime, beginTime, endTime).eq(DataPetition12337::getSecondDepartId,departId));
Long numTotal = dataPetition12337Service.count(new LambdaQueryWrapper<DataPetition12337>().between(DataPetition12337::getDiscoverTime, beginTime, endTime).eq(DataPetition12337::getSecondDepartId, departId));
// 局长信箱
QueryWrapper<Mail> subOneMailQueryWrapper = new QueryWrapper<>();
String exDepartId = supExternalDepartMapper.getExIdByInId(departId.toString(), EX_SOURCE);
@ -881,7 +893,7 @@ public class DatavServiceImpl implements DatavService {
List<OrganizeProblemRankVo> fxsjFirstRankList = dataPetitionComplaintMapper.getSubMailRank(beginTime, endTime, 10, RepeatEnum.FIRST_MAIL.getId(), request.getDepartId());
List<OrganizeProblemRankVo> fxsjRepeatRankList = dataPetitionComplaintMapper.getSubMailRank(beginTime, endTime, 10, RepeatEnum.REPEAT_MAIL.getId(), request.getDepartId());
// 大队
List<OrganizeProblemRankVo> bwzdFirstRankList = dataPetitionComplaintMapper.getSubMailRank(beginTime, endTime, null, RepeatEnum.FIRST_MAIL.getId(),request.getDepartId());
List<OrganizeProblemRankVo> bwzdFirstRankList = dataPetitionComplaintMapper.getSubMailRank(beginTime, endTime, null, RepeatEnum.FIRST_MAIL.getId(), request.getDepartId());
List<OrganizeProblemRankVo> bwzdRepeatRankList = dataPetitionComplaintMapper.getSubMailRank(beginTime, endTime, null, RepeatEnum.REPEAT_MAIL.getId(), request.getDepartId());
// 汇总(派出所)
MailFirstAndRepeatOverviewVo fxsjOverview = new MailFirstAndRepeatOverviewVo();
@ -915,7 +927,7 @@ public class DatavServiceImpl implements DatavService {
// 公安信访
Long policeTotal = dataPetitionComplaintMapper.selectMailBySourceCode(beginTime, endTime, GABXF.getValue(), departId);
// 12337
Long numTotal = dataPetition12337Service.count(new LambdaQueryWrapper<DataPetition12337>().between(DataPetition12337::getDiscoverTime, beginTime, endTime).eq(DataPetition12337::getSecondDepartId,departId));
Long numTotal = dataPetition12337Service.count(new LambdaQueryWrapper<DataPetition12337>().between(DataPetition12337::getDiscoverTime, beginTime, endTime).eq(DataPetition12337::getSecondDepartId, departId));
// 局长信箱
QueryWrapper<Mail> subOneMailQueryWrapper = new QueryWrapper<>();
String exDepartId = supExternalDepartMapper.getExIdByInId(departId.toString(), "局长信箱");
@ -1015,7 +1027,7 @@ public class DatavServiceImpl implements DatavService {
long police = policeTotal == null ? 0L : policeTotal;
long num = numTotal == null ? 0L : numTotal;
long manage = manageMail == null ? 0L : manageMail;
Long total = country + police + num ;
Long total = country + police + num;
re.setCountryTotal(String.valueOf(country));
re.setPoliceTotal(String.valueOf(police));
re.setCommissionerTotal(String.valueOf(manage));
@ -1027,6 +1039,228 @@ public class DatavServiceImpl implements DatavService {
return Result.success(data);
}
@Override
public Result<JSONObject> getVideoSuperviseProblemRank(DataVRequest request) {
List<OrganizeProblemRankVo> fxsjVideoSuperviseProblemRankList = new ArrayList<>();
List<OrganizeProblemRankVo> jsdwVideoSuperviseProblemRankList = new ArrayList<>();
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam();
supDepartQueryParam.setStatisticsGroupId(DepartGroupEnum.COUNTY_CITY_BUREAUS.getId());
List<SupDepart> fxsjDw = supDepartResourceService.query(supDepartQueryParam);
SupDepartQueryParam jsdwQueryParam = new SupDepartQueryParam();
jsdwQueryParam.setStatisticsGroupId(DepartGroupEnum.BUREAU_AFFILIATED.getId());
List<SupDepart> jsdwDw = supDepartResourceService.query(jsdwQueryParam);
for (SupDepart fxsj : fxsjDw) {
List<Negative> fxsjList = negativeMapper.getVideoSuperviseProblemRank(fxsj.getId(), request.getBeginTime(), request.getEndTime());
// 总数
long total = fxsjList.size();
if (total==0){
continue;
}
// 市局下发
long sjxf = fxsjList.stream().filter(one -> Integer.valueOf(0).equals(one.getCrtDepartLevel())).count();
// 县局下发
long xjxf = fxsjList.stream().filter(one -> Integer.valueOf(2).equals(one.getCrtDepartLevel())).count();
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo();
organizeProblemRankVo.setLabel(fxsj.getShortName());
organizeProblemRankVo.setCityNumber(String.valueOf(sjxf));
organizeProblemRankVo.setCountyNumber(String.valueOf(xjxf));
organizeProblemRankVo.setValue(String.valueOf(total));
fxsjVideoSuperviseProblemRankList.add(organizeProblemRankVo);
}
for (SupDepart jsdw : jsdwDw) {
List<Negative> fxsjList = negativeMapper.getVideoSuperviseProblemRank(jsdw.getId(), request.getBeginTime(), request.getEndTime());
// 总数
long total = fxsjList.size();
if (total==0){
continue;
}
// 市局下发
long sjxf = fxsjList.stream().filter(one -> Integer.valueOf(0).equals(one.getCrtDepartLevel())).count();
// 县局下发
long xjxf = fxsjList.stream().filter(one -> Integer.valueOf(2).equals(one.getCrtDepartLevel())).count();
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo();
organizeProblemRankVo.setLabel(jsdw.getShortName());
organizeProblemRankVo.setCityNumber(String.valueOf(sjxf));
organizeProblemRankVo.setCountyNumber(String.valueOf(xjxf));
organizeProblemRankVo.setValue(String.valueOf(total));
jsdwVideoSuperviseProblemRankList.add(organizeProblemRankVo);
}
// 排序
fxsjVideoSuperviseProblemRankList.sort(
Comparator.comparingLong((OrganizeProblemRankVo vo) -> Long.parseLong(vo.getValue()))
.reversed()
);
jsdwVideoSuperviseProblemRankList.sort(
Comparator.comparingLong((OrganizeProblemRankVo vo) -> Long.parseLong(vo.getValue()))
.reversed()
);
JSONObject data = new JSONObject();
data.fluentPut("fxsjVideoSuperviseProblemRankList", fxsjVideoSuperviseProblemRankList);
data.fluentPut("jsdwVideoSuperviseProblemRankList", jsdwVideoSuperviseProblemRankList);
return Result.success(data);
}
@Override
public Result<JSONObject> getChangedRank(DataVRequest request) {
List<RankVo> fxsjChangedRankList = new ArrayList<>();
List<RankVo> jsdwChangedRankList = new ArrayList<>();
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam();
supDepartQueryParam.setStatisticsGroupId(DepartGroupEnum.COUNTY_CITY_BUREAUS.getId());
List<SupDepart> fxsjDw = supDepartResourceService.query(supDepartQueryParam);
SupDepartQueryParam jsdwQueryParam = new SupDepartQueryParam();
jsdwQueryParam.setStatisticsGroupId(DepartGroupEnum.BUREAU_AFFILIATED.getId());
List<SupDepart> jsdwDw = supDepartResourceService.query(jsdwQueryParam);
for (SupDepart fxsj : fxsjDw) {
List<Negative> negativeList = negativeMapper.getChangedRank(fxsj.getId(), request.getBeginTime(), request.getEndTime());
// 问题数
int totalPro = negativeList.size();
if (totalPro==0){
continue;
}
// 办结数
long completed = negativeList.stream().filter(Objects::nonNull).filter(one -> ProcessingStatusEnum.completed.name().equals(one.getProcessingStatus())).count();
// 市局下发
long sjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(0).equals(one.getCrtDepartLevel())).count();
// 县局下发
long xjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(2).equals(one.getCrtDepartLevel())).count();
String rate = BigDecimal.valueOf(completed)
.multiply(BigDecimal.valueOf(100))
.divide(BigDecimal.valueOf(totalPro), 1, RoundingMode.HALF_UP)
.toString();
RankVo rankVo = new RankVo();
rankVo.setLabel(fxsj.getShortName());
rankVo.setDepartId(fxsj.getId());
rankVo.setCityNumber(String.valueOf(sjxf));
rankVo.setCountyNumber(String.valueOf(xjxf));
rankVo.setNumerator(String.valueOf(completed));
rankVo.setDenominator(String.valueOf(totalPro));
rankVo.setValue(rate);
rankVo.setRate(rate);
fxsjChangedRankList.add(rankVo);
}
for (SupDepart jsdw : jsdwDw) {
List<Negative> negativeList = negativeMapper.getChangedRank(jsdw.getId(), request.getBeginTime(), request.getEndTime());
// 问题数
int totalPro = negativeList.size();
if (totalPro==0){
continue;
}
// 办结数
long completed = negativeList.stream().filter(Objects::nonNull).filter(one -> ProcessingStatusEnum.completed.name().equals(one.getProcessingStatus())).count();
// 市局下发
long sjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(0).equals(one.getCrtDepartLevel())).count();
// 县局下发
long xjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(2).equals(one.getCrtDepartLevel())).count();
String rate = BigDecimal.valueOf(completed)
.multiply(BigDecimal.valueOf(100))
.divide(BigDecimal.valueOf(totalPro), 1, RoundingMode.HALF_UP)
.toString();
RankVo rankVo = new RankVo();
rankVo.setLabel(jsdw.getShortName());
rankVo.setDepartId(jsdw.getId());
rankVo.setCityNumber(String.valueOf(sjxf));
rankVo.setCountyNumber(String.valueOf(xjxf));
rankVo.setNumerator(String.valueOf(completed));
rankVo.setDenominator(String.valueOf(totalPro));
rankVo.setValue(rate);
rankVo.setRate(rate);
jsdwChangedRankList.add(rankVo);
}
fxsjChangedRankList.sort(
Comparator.comparingLong((RankVo vo) -> Long.parseLong(vo.getDenominator()))
.reversed()
);
jsdwChangedRankList.sort(
Comparator.comparingLong((RankVo vo) -> Long.parseLong(vo.getDenominator()))
.reversed()
);
long total = Stream.concat(fxsjChangedRankList.stream(), jsdwChangedRankList.stream())
.mapToLong(vo -> Long.parseLong(vo.getDenominator()))
.sum();
long completed = Stream.concat(fxsjChangedRankList.stream(), jsdwChangedRankList.stream())
.mapToLong(vo -> Long.parseLong(vo.getNumerator()))
.sum();
long processing = total - completed;
double rate = total == 0 ? 0.0 : BigDecimal.valueOf(completed)
.multiply(BigDecimal.valueOf(100))
.divide(BigDecimal.valueOf(total), 1, RoundingMode.HALF_UP)
.doubleValue();
DayTimeSuperviseVo overview = new DayTimeSuperviseVo();
overview.setProTotal((int) total);
overview.setProcessingNumber(processing);
overview.setCompletedNumber(completed);
overview.setCompletedRate(rate);
JSONObject data = new JSONObject()
.fluentPut("fxsjChangedRankList", fxsjChangedRankList)
.fluentPut("jsdwChangedRankList", jsdwChangedRankList)
.fluentPut("overview", overview);
return Result.success(data);
}
@Override
public Result<SupervisionNotifyOverView> getSupervisionNotifyCount(DataVRequest request) {
SupervisionNotifyOverView overView = new SupervisionNotifyOverView();
List<String> proCode = List.of(XCDC.getValue(), LMGZ.getValue(), ZXDC.getValue());
LambdaQueryWrapper<Negative> negativeLambdaQueryWrapper = new LambdaQueryWrapper<>();
negativeLambdaQueryWrapper.between(Negative::getCrtTime, request.getBeginTime(), request.getEndTime());
negativeLambdaQueryWrapper.in(Negative::getProblemSourcesCode, proCode);
List<Negative> negatives = negativeMapper.selectList(negativeLambdaQueryWrapper);
List<Negative> completedList = negatives.stream().filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())).toList();
List<Negative> processingList = negatives.stream().filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())).toList();
LambdaQueryWrapper<SuperviseReport> superviseReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
UserAuth user = UserContextHolder.getCurrentUser();
// 权限
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) {
if (user.getAuthDepartIds().isEmpty() || user.getRoleCodes().isEmpty()) {
//特殊处理
overView.setReportNumber(0L);
}
List<String> orgIds = supDepartService.getAllNodeIds(user.getAuthDepartIds());
superviseReportLambdaQueryWrapper.in(SuperviseReport::getCrtDepartId, orgIds);
}
superviseReportLambdaQueryWrapper.between(SuperviseReport::getCrtTime, request.getBeginTime(), request.getEndTime());
superviseReportLambdaQueryWrapper.eq(SuperviseReport::getType, "1");
List<SuperviseReport> superviseReportList = superviseReportService.list(superviseReportLambdaQueryWrapper);
List<String> negativeIds = negatives.stream().filter(one -> CheckStatusEnum.TRUE_SET.contains(one.getCheckStatusCode()) || CheckStatusEnum.PART_TRUE_SET.contains(one.getCheckStatusCode())).map(Negative::getId).toList();
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> {
long personNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getType, "personal")
.isNotNull(NegativeBlame::getBlameName)
.ne(NegativeBlame::getBlameName, "")
.ne(NegativeBlame::getHandleResultName, "不予追责")
.isNotNull(NegativeBlame::getHandleResultName)
.ne(NegativeBlame::getHandleResultName, ""));
overView.setPersonNumber(personNumber);
}),
CompletableFutureUtil.runSyncObject(() -> {
long departNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, negativeIds)
.eq(NegativeBlame::getType, "department")
.ne(NegativeBlame::getHandleResultName, "不予追责")
.isNotNull(NegativeBlame::getHandleResultName)
.ne(NegativeBlame::getHandleResultName, ""));
overView.setDepartNumber(departNumber);
})
).join();
// 通报问题数
overView.setProblemNumber(negatives.size());
// 通报期数
overView.setReportNumber((long) superviseReportList.size());
// 办理中
overView.setProcessingNumber((long) processingList.size());
// 已办结
overView.setCompletedNumber((long) completedList.size());
return Result.success(overView);
}
public Result<JSONObject> getSubOneMailMapIcon() {
@ -1197,33 +1431,87 @@ public class DatavServiceImpl implements DatavService {
// ===== 分县市局 - 群体集访 =====
List<OrganizeProblemRankVo> fxsjMassMailList = new ArrayList<>();
OrganizeProblemRankVo v1 = new OrganizeProblemRankVo(); v1.setLabel("浏阳市局"); v1.setValue("126"); fxsjMassMailList.add(v1);
OrganizeProblemRankVo v2 = new OrganizeProblemRankVo(); v2.setLabel("宁乡市局"); v2.setValue("98"); fxsjMassMailList.add(v2);
OrganizeProblemRankVo v3 = new OrganizeProblemRankVo(); v3.setLabel("长沙县局"); v3.setValue("86"); fxsjMassMailList.add(v3);
OrganizeProblemRankVo v4 = new OrganizeProblemRankVo(); v4.setLabel("望城区局"); v4.setValue("74"); fxsjMassMailList.add(v4);
OrganizeProblemRankVo v5 = new OrganizeProblemRankVo(); v5.setLabel("岳麓分局"); v5.setValue("63"); fxsjMassMailList.add(v5);
OrganizeProblemRankVo v1 = new OrganizeProblemRankVo();
v1.setLabel("浏阳市局");
v1.setValue("126");
fxsjMassMailList.add(v1);
OrganizeProblemRankVo v2 = new OrganizeProblemRankVo();
v2.setLabel("宁乡市局");
v2.setValue("98");
fxsjMassMailList.add(v2);
OrganizeProblemRankVo v3 = new OrganizeProblemRankVo();
v3.setLabel("长沙县局");
v3.setValue("86");
fxsjMassMailList.add(v3);
OrganizeProblemRankVo v4 = new OrganizeProblemRankVo();
v4.setLabel("望城区局");
v4.setValue("74");
fxsjMassMailList.add(v4);
OrganizeProblemRankVo v5 = new OrganizeProblemRankVo();
v5.setLabel("岳麓分局");
v5.setValue("63");
fxsjMassMailList.add(v5);
// ===== 分县市局 - 领导接访 =====
List<OrganizeProblemRankVo> fxsjLeaderReviewMailList = new ArrayList<>();
OrganizeProblemRankVo v6 = new OrganizeProblemRankVo(); v6.setLabel("浏阳市局"); v6.setValue("34"); fxsjLeaderReviewMailList.add(v6);
OrganizeProblemRankVo v7 = new OrganizeProblemRankVo(); v7.setLabel("宁乡市局"); v7.setValue("28"); fxsjLeaderReviewMailList.add(v7);
OrganizeProblemRankVo v8 = new OrganizeProblemRankVo(); v8.setLabel("长沙县局"); v8.setValue("25"); fxsjLeaderReviewMailList.add(v8);
OrganizeProblemRankVo v9 = new OrganizeProblemRankVo(); v9.setLabel("望城区局"); v9.setValue("19"); fxsjLeaderReviewMailList.add(v9);
OrganizeProblemRankVo v10 = new OrganizeProblemRankVo(); v10.setLabel("岳麓分局"); v10.setValue("16"); fxsjLeaderReviewMailList.add(v10);
OrganizeProblemRankVo v6 = new OrganizeProblemRankVo();
v6.setLabel("浏阳市局");
v6.setValue("34");
fxsjLeaderReviewMailList.add(v6);
OrganizeProblemRankVo v7 = new OrganizeProblemRankVo();
v7.setLabel("宁乡市局");
v7.setValue("28");
fxsjLeaderReviewMailList.add(v7);
OrganizeProblemRankVo v8 = new OrganizeProblemRankVo();
v8.setLabel("长沙县局");
v8.setValue("25");
fxsjLeaderReviewMailList.add(v8);
OrganizeProblemRankVo v9 = new OrganizeProblemRankVo();
v9.setLabel("望城区局");
v9.setValue("19");
fxsjLeaderReviewMailList.add(v9);
OrganizeProblemRankVo v10 = new OrganizeProblemRankVo();
v10.setLabel("岳麓分局");
v10.setValue("16");
fxsjLeaderReviewMailList.add(v10);
// ===== 局属单位 - 群体集访 =====
List<OrganizeProblemRankVo> bwzdMassMailList = new ArrayList<>();
OrganizeProblemRankVo b1 = new OrganizeProblemRankVo(); b1.setLabel("治安支队"); b1.setValue("47"); bwzdMassMailList.add(b1);
OrganizeProblemRankVo b2 = new OrganizeProblemRankVo(); b2.setLabel("刑侦支队"); b2.setValue("39"); bwzdMassMailList.add(b2);
OrganizeProblemRankVo b3 = new OrganizeProblemRankVo(); b3.setLabel("交警支队"); b3.setValue("33"); bwzdMassMailList.add(b3);
OrganizeProblemRankVo b4 = new OrganizeProblemRankVo(); b4.setLabel("网安支队"); b4.setValue("28"); bwzdMassMailList.add(b4);
OrganizeProblemRankVo b1 = new OrganizeProblemRankVo();
b1.setLabel("治安支队");
b1.setValue("47");
bwzdMassMailList.add(b1);
OrganizeProblemRankVo b2 = new OrganizeProblemRankVo();
b2.setLabel("刑侦支队");
b2.setValue("39");
bwzdMassMailList.add(b2);
OrganizeProblemRankVo b3 = new OrganizeProblemRankVo();
b3.setLabel("交警支队");
b3.setValue("33");
bwzdMassMailList.add(b3);
OrganizeProblemRankVo b4 = new OrganizeProblemRankVo();
b4.setLabel("网安支队");
b4.setValue("28");
bwzdMassMailList.add(b4);
// ===== 局属单位 - 领导接访 =====
List<OrganizeProblemRankVo> bwzdLeaderReviewMailList = new ArrayList<>();
OrganizeProblemRankVo b5 = new OrganizeProblemRankVo(); b5.setLabel("治安支队"); b5.setValue("14"); bwzdLeaderReviewMailList.add(b5);
OrganizeProblemRankVo b6 = new OrganizeProblemRankVo(); b6.setLabel("刑侦支队"); b6.setValue("11"); bwzdLeaderReviewMailList.add(b6);
OrganizeProblemRankVo b7 = new OrganizeProblemRankVo(); b7.setLabel("交警支队"); b7.setValue("9"); bwzdLeaderReviewMailList.add(b7);
OrganizeProblemRankVo b8 = new OrganizeProblemRankVo(); b8.setLabel("网安支队"); b8.setValue("6"); bwzdLeaderReviewMailList.add(b8);
OrganizeProblemRankVo b5 = new OrganizeProblemRankVo();
b5.setLabel("治安支队");
b5.setValue("14");
bwzdLeaderReviewMailList.add(b5);
OrganizeProblemRankVo b6 = new OrganizeProblemRankVo();
b6.setLabel("刑侦支队");
b6.setValue("11");
bwzdLeaderReviewMailList.add(b6);
OrganizeProblemRankVo b7 = new OrganizeProblemRankVo();
b7.setLabel("交警支队");
b7.setValue("9");
bwzdLeaderReviewMailList.add(b7);
OrganizeProblemRankVo b8 = new OrganizeProblemRankVo();
b8.setLabel("网安支队");
b8.setValue("6");
bwzdLeaderReviewMailList.add(b8);
// ===== 汇总(分县市局)=====
MailEntanglementMassOverviewVo fxsjOverview = new MailEntanglementMassOverviewVo();

Loading…
Cancel
Save