Browse Source

fix:区县总览大屏:1、总览数及地图详情参考市级大屏修改(现场督察、数字督察、案件核查、局长信箱、信访投诉、审计项目),2、其它统计图统一维度; fix:1、大屏名称改“监督管理” ;fix:1、隐藏“办结率” 2、右上角新增“登录客户端”入口,链接参考首页的视频督察 3、视频做轮播效果 4、总览数据参考市局大屏

master
pengwei 6 months ago
parent
commit
f3891503a5
  1. 29
      src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java
  2. 8
      src/main/java/com/biutag/supervision/controller/datav/DataVVideoSuperviseController.java
  3. 39
      src/main/java/com/biutag/supervision/controller/subdatav/SubOneGlobalController.java
  4. 101
      src/main/java/com/biutag/supervision/mapper/NegativeMapper.java
  5. 27
      src/main/java/com/biutag/supervision/pojo/vo/GlobalMapIconVo.java
  6. 37
      src/main/java/com/biutag/supervision/service/DataMailService.java

29
src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java

@ -1,13 +1,16 @@
package com.biutag.supervision.controller.datav; package com.biutag.supervision.controller.datav;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum; import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.mapper.NegativeMapper; import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.mapper.SupDepartMapper;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.vo.*; import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.service.DataMailService; import com.biutag.supervision.service.DataMailService;
import com.biutag.supervision.service.NegativeService; import com.biutag.supervision.service.NegativeService;
@ -23,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -46,6 +50,7 @@ public class DataVGlobalController {
private final NegativeService negativeService; private final NegativeService negativeService;
private final SupDepartMapper supDepartMapper;
//region 左边 //region 左边
/** /**
@ -128,8 +133,28 @@ public class DataVGlobalController {
public Result<JSONObject> getGlobalMap(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, public Result<JSONObject> getGlobalMap(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// 地图数据 // 地图数据
List<GlobalMapIconVo> list = negativeMapper.getGlobalMap(beginTime, endTime); List<GlobalMapIconVo> mapIconVos = new ArrayList<>();
JSONObject data = new JSONObject().fluentPut("globalTempMapVoList", list); List<SupDepart> list = supDepartMapper.selectList(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getStatisticsGroupId,"3"));
list.forEach((s)->{
Integer departId =Integer.valueOf(s.getId());
GlobalMapIconVo vos=new GlobalMapIconVo();
GlobalOverViewVo overview = negativeMapper.getSuoOneAllGlobalCount(departId, beginTime, endTime);
MailOverviewVo vo = dataMailService.mailCount(departId,beginTime, endTime);
// 局长信箱
long mailboxNumber = negativeService.count(new LambdaQueryWrapper<Negative>()
.between(Negative::getCrtTime, beginTime, endTime)
.eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.JZXX.getValue())
.eq(Negative::getSecondInvolveDepartId,departId)
);
overview.setMailboxNumber(mailboxNumber);
overview.setComplaintPro(vo.getCountryMail() + vo.getPoliceMail() + vo.getNumberMail());
BeanUtil.copyProperties(overview,vos);
vos.setName(s.getShortName());
vos.setDepartId(s.getId());
mapIconVos.add(vos);
});
JSONObject data = new JSONObject().fluentPut("globalTempMapVoList", mapIconVos);
return Result.success(data); return Result.success(data);
} }

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

@ -1,6 +1,7 @@
package com.biutag.supervision.controller.datav; package com.biutag.supervision.controller.datav;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.biutag.supervision.mapper.NegativeMapper; import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.mapper.WvpDeviceChannelMapper; import com.biutag.supervision.mapper.WvpDeviceChannelMapper;
@ -128,8 +129,11 @@ public class DataVVideoSuperviseController {
orElseGet(ArrayList::new); orElseGet(ArrayList::new);
List<EchartsVo> list =negativeMapper.selectRelativePer(beginTime,endTime); List<EchartsVo> list =negativeMapper.selectRelativePer(beginTime,endTime);
videoSuperviseMapIconVoList.forEach(s->{ videoSuperviseMapIconVoList.forEach(s->{
int relativePer = list.stream().filter(b->b.getName().contains(s.getDepartId())).toList().get(0).getValue(); List<EchartsVo> echartsVoList= list.stream().filter(b->b.getName().contains(s.getDepartId())).toList();
s.setRelativePer(relativePer); if(!echartsVoList.isEmpty()){
int relativePer = echartsVoList.get(0).getValue();
s.setRelativePer(relativePer);
}
}); });
JSONObject data = new JSONObject().fluentPut("videoSuperviseMapIconVoList", videoSuperviseMapIconVoList); JSONObject data = new JSONObject().fluentPut("videoSuperviseMapIconVoList", videoSuperviseMapIconVoList);

39
src/main/java/com/biutag/supervision/controller/subdatav/SubOneGlobalController.java

@ -1,13 +1,14 @@
package com.biutag.supervision.controller.subdatav; package com.biutag.supervision.controller.subdatav;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.mapper.NegativeMapper; import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.mapper.NegativeProblemRelationMapper; import com.biutag.supervision.mapper.NegativeProblemRelationMapper;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.vo.*; import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.service.CountyStreetDeptService; import com.biutag.supervision.service.*;
import com.biutag.supervision.service.DataGlobalService;
import com.biutag.supervision.service.SubOneService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -37,8 +38,8 @@ public class SubOneGlobalController {
private final NegativeMapper negativeMapper; private final NegativeMapper negativeMapper;
private final CountyStreetDeptService countyStreetDeptService; private final CountyStreetDeptService countyStreetDeptService;
private final DataMailService dataMailService;
private final NegativeService negativeService;
/** /**
* 获取地图数据, 所有二级地图的json数据 * 获取地图数据, 所有二级地图的json数据
* *
@ -118,6 +119,18 @@ public class SubOneGlobalController {
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// 获取数据大屏中央总数概览 // 获取数据大屏中央总数概览
GlobalOverViewVo overview = negativeMapper.getSuoOneAllGlobalCount(departId, beginTime, endTime); GlobalOverViewVo overview = negativeMapper.getSuoOneAllGlobalCount(departId, beginTime, endTime);
MailOverviewVo vo = dataMailService.mailCount(departId,beginTime, endTime);
// 局长信箱
long mailboxNumber = negativeService.count(new LambdaQueryWrapper<Negative>()
.between(Negative::getCrtTime, beginTime, endTime)
.eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.JZXX.getValue())
.eq(Negative::getSecondInvolveDepartId,departId)
);
overview.setMailboxNumber(mailboxNumber);
overview.setComplaintPro(vo.getCountryMail() + vo.getPoliceMail() + vo.getNumberMail());
JSONObject data = new JSONObject().fluentPut("overview", overview); JSONObject data = new JSONObject().fluentPut("overview", overview);
return Result.success(data); return Result.success(data);
} }
@ -136,9 +149,21 @@ public class SubOneGlobalController {
public Result<JSONObject> getSubOneMap(@RequestParam Integer departId, public Result<JSONObject> getSubOneMap(@RequestParam Integer departId,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
// 地图数据 // 地图数据
List<GlobalMapIconVo> GlobalTempMapVoList = negativeMapper.getSubOneGlobalMap(beginTime, endTime, departId); List<GlobalMapIconVo> globalMapIconVoList = negativeMapper.getSubOneGlobalMap(beginTime, endTime, departId);
JSONObject data = new JSONObject().fluentPut("globalTempMapVoList", GlobalTempMapVoList); globalMapIconVoList.forEach(s->{
long mailboxNumber = negativeService.count(new LambdaQueryWrapper<Negative>()
.between(Negative::getCrtTime, beginTime, endTime)
.eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.JZXX.getValue())
.eq(Negative::getThreeInvolveDepartId,s.getDepartId())
);
s.setMailboxNumber(mailboxNumber);
MailOverviewVo vo = dataMailService.mailCount(Integer.valueOf(s.getDepartId()),beginTime, endTime);
s.setComplaintPro(vo.getCountryMail() + vo.getPoliceMail() + vo.getNumberMail());
});
JSONObject data = new JSONObject().fluentPut("globalTempMapVoList", globalMapIconVoList);
return Result.success(data); return Result.success(data);
} }

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

@ -47,21 +47,34 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"and checkStatus in (1, 2) " + "and checkStatus in (1, 2) " +
"GROUP BY businessTypeName") "GROUP BY businessTypeName")
List<EchartsVo> selectBusinessRate(Date beginTime, Date endTime); List<EchartsVo> selectBusinessRate(Date beginTime, Date endTime);
@Select("SELECT " +
"COALESCE(SUM(IF(problemSourcesCode IN (13), 1, 0)), 0) AS supervisionPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (14,15,16), 1, 0)), 0) AS numSupervisionPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (17,18,19,20), 1, 0)), 0) AS caseVerificationPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (27,28,29,30), 1, 0)), 0) AS auditPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro " +
"FROM negative ng WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} ")
// "COALESCE(SUM(IF(problemSourcesCode IN (27, 28, 29, 30), 1, 0)), 0) AS auditPro " +
GlobalOverViewVo getSuoOneAllGlobalCount(Integer departId, Date beginTime, Date endTime);
// 中央总览 // 中央总览 todo
@Select("SELECT " + @Select("SELECT " +
"count(ng.id) AS totalPro, " + "count(ng.id) AS totalPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (13), 1, 0)), 0) AS supervisionPro, " + "COALESCE(SUM(IF(problemSourcesCode IN (13), 1, 0)), 0) AS supervisionPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (14,15,16), 1, 0)), 0) AS numSupervisionPro, " + "COALESCE(SUM(IF(problemSourcesCode IN (14,15,16), 1, 0)), 0) AS numSupervisionPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (17,18,19,20), 1, 0)), 0) AS caseVerificationPro, " + "COALESCE(SUM(IF(problemSourcesCode IN (17,18,19,20), 1, 0)), 0) AS caseVerificationPro, " +
// "COALESCE(SUM(IF(problemSourcesCode IN (27,28,29,30), 1, 0)), 0) AS auditPro, " + "COALESCE(SUM(IF(problemSourcesCode IN (27,28,29,30), 1, 0)), 0) AS auditPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro " + "COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro " +
"FROM negative ng " + "FROM negative ng " +
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ") "WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ")
GlobalOverViewVo getAllGlobalCount(Date beginTime, Date endTime); GlobalOverViewVo getAllGlobalCount(Date beginTime, Date endTime);
// 地图卡片 // 地图卡片
@Select("SELECT " + @Select("SELECT " +
"sd.short_name AS `name`, " + "sd.short_name AS `name`, " +
@ -382,7 +395,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " + "WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id=10 " + "AND sd.statistics_group_id=10 " +
"AND sd.pid=#{departId} " + "AND sd.pid=#{departId} " +
"AND problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " + "AND problemSourcesCode IN (2,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " +
"GROUP BY sd.short_name " + "GROUP BY sd.short_name " +
"ORDER BY `value` DESC;") "ORDER BY `value` DESC;")
List<OrganizeProblemRankVo> selectPoliceOrganizeProblemRank(Integer departId, Date beginTime, Date endTime); List<OrganizeProblemRankVo> selectPoliceOrganizeProblemRank(Integer departId, Date beginTime, Date endTime);
@ -395,7 +408,7 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " + "WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND sd.statistics_group_id!=10 " + "AND sd.statistics_group_id!=10 " +
"AND sd.pid=#{departId} " + "AND sd.pid=#{departId} " +
"AND problemSourcesCode IN (2,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " + "AND problemSourcesCode IN (2,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30) " +
"GROUP BY sd.short_name " + "GROUP BY sd.short_name " +
"ORDER BY `value` DESC;") "ORDER BY `value` DESC;")
List<OrganizeProblemRankVo> selectTeamOrganizeProblemRank(Integer departId, Date beginTime, Date endTime); List<OrganizeProblemRankVo> selectTeamOrganizeProblemRank(Integer departId, Date beginTime, Date endTime);
@ -410,33 +423,25 @@ public interface NegativeMapper extends BaseMapper<Negative> {
"GROUP BY businessTypeName") "GROUP BY businessTypeName")
List<EchartsVo> selectSubOneBusinessRate(Integer departId, Date beginTime, Date endTime); List<EchartsVo> selectSubOneBusinessRate(Integer departId, Date beginTime, Date endTime);
@Select("SELECT " +
"COALESCE(SUM(IF(problemSourcesCode IN (2, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30), 1, 0)), 0) AS totalPro, " +
"COALESCE(SUM(IF(problemSourcesCode IN (13, 15, 16), 1, 0)), 0) AS supervisionPro, " + @Select(" SELECT " +
"COALESCE(SUM(IF(problemSourcesCode IN (17, 18, 19, 20), 1, 0)), 0) AS caseVerificationPro, " + " csd.name as `name`, " +
"COALESCE(SUM(IF(problemSourcesCode IN (21, 22, 23, 24, 25), 1, 0)), 0) AS complaintPro, " + " csd.dept_name as policeName, " +
"COALESCE(SUM(IF(problemSourcesCode IN (2), 1, 0)), 0) AS talkPro, " + " csd.dept_id as departId, " +
"COALESCE(SUM(IF(problemSourcesCode IN (27, 28, 29, 30), 1, 0)), 0) AS auditPro " + " csd.dept_pid, " +
"FROM negative ng WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " + " COUNT(ng.id) as totalPro ,"+
"AND ng.second_involve_depart_id=#{departId} ") " COALESCE(SUM(IF(ng.problemSourcesCode IN (13), 1, 0)), 0) AS supervisionPro, " +
GlobalOverViewVo getSuoOneAllGlobalCount(Integer departId, Date beginTime, Date endTime); " COALESCE(SUM(IF(ng.problemSourcesCode IN (14,15,16), 1, 0)), 0) AS numSupervisionPro, " +
@Select("SELECT " + " COALESCE(SUM(IF(ng.problemSourcesCode IN (17,18,19,20), 1, 0)), 0) AS caseVerificationPro, " +
"csd.`name` AS `name`, " + " COALESCE(SUM(IF(ng.problemSourcesCode IN (27,28,29,30), 1, 0)), 0) AS auditPro, " +
"csd.dept_name AS policeName, " + " COALESCE(SUM(IF(ng.problemSourcesCode IN (2), 1, 0)), 0) AS talkPro " +
"csd.dept_pid, " + " from county_street_dept csd " +
"csd.dept_id AS departId, " + " LEFT JOIN negative ng ON ng.three_involve_depart_id=csd.dept_id " +
"COUNT( DISTINCT ng.id ) AS totalPro, " + " WHERE ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"SUM( IF(problemSourcesCode IN (13,15,16), 1, 0) ) AS supervisePro, " + " and ng.second_involve_depart_id = #{departId} " +
"SUM( IF(problemSourcesCode IN (17,18,19,20), 1, 0) ) AS caseVerifyPro, " + " GROUP BY csd.dept_name " +
"SUM( IF(problemSourcesCode IN (21,22,23,24,25),1, 0) ) AS mailPro, " + " HAVING csd.dept_pid= #{departId} ")
"SUM( IF(problemSourcesCode IN (2),1, 0) ) AS policePro, " +
"SUM( IF(problemSourcesCode IN (27,28,29,30),1, 0) ) AS reviewPro " +
"FROM county_street_dept csd " +
"LEFT JOIN negative ng ON ng.three_involve_depart_id=csd.dept_id " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} " +
"AND ng.second_involve_depart_id=#{departId} " +
"GROUP BY csd.dept_name " +
"HAVING csd.dept_pid=#{departId} ")
List<GlobalMapIconVo> getSubOneGlobalMap(Date beginTime, Date endTime, Integer departId); List<GlobalMapIconVo> getSubOneGlobalMap(Date beginTime, Date endTime, Integer departId);
@ -495,17 +500,29 @@ public interface NegativeMapper extends BaseMapper<Negative> {
List<EchartsVo> getSubOneVideoSuperviseTrend(String year, String problemCode, String departId); List<EchartsVo> getSubOneVideoSuperviseTrend(String year, String problemCode, String departId);
@Select("SELECT COUNT(DISTINCT ng.id) AS discoverProblem, " + // @Select("SELECT COUNT(DISTINCT ng.id) AS discoverProblem, " +
"COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) AS completionProblem, " + // "COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) AS completionProblem, " +
"COUNT(DISTINCT ng.involveDepartId) AS relativeOrg, " + // "COUNT(DISTINCT ng.involveDepartId) AS relativeOrg, " +
"COUNT(DISTINCT nb.blameName) AS relativePer, " + // "COUNT(DISTINCT nb.blameName) AS relativePer, " +
"IFNULL( ROUND((COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS completionRate " + // "IFNULL( ROUND((COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS completionRate " +
"FROM sup_depart sd " + // "FROM sup_depart sd " +
"INNER JOIN negative ng ON sd.id = ng.involveDepartId AND sd.pid=#{departId} " + // "INNER JOIN negative ng ON sd.id = ng.involveDepartId AND sd.pid=#{departId} " +
"LEFT JOIN negative_blame nb ON ng.id = nb.negativeId " + // "LEFT JOIN negative_blame nb ON ng.id = nb.negativeId " +
"WHERE ng.checkStatus IN ('1','2') " + // "WHERE ng.checkStatus IN ('1','2') " +
"AND problemSourcesCode = 16 " + // "AND problemSourcesCode = 16 " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ") // "AND ng.crtTime BETWEEN #{beginTime} AND #{endTime}; ")
@Select("SELECT " +
"COUNT(DISTINCT ng.id) total, " +
"COUNT(DISTINCT IF(ng.checkStatus IN ('1','2'), ng.id, NULL)) AS discoverProblem, " +
"COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) AS completionProblem, " +
"COUNT(IF(nb.type ='department' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL)) AS relativeOrg, " +
"COUNT(IF(nb.type ='personal' and ng.checkStatus IN ('1','2') and nb.handleResultName != '不予追责' and nb.handleResultCode is not null and nb.handleResultCode != '', nb.blameId, NULL)) AS relativePer, " +
"IFNULL( ROUND((COUNT(DISTINCT IF(ng.processing_status='completed', ng.id, NULL)) / COUNT(DISTINCT ng.id)) * 100, 1), 0) AS completionRate " +
"FROM sup_depart sd " +
"INNER JOIN negative ng ON sd.id = ng.involveDepartId and sd.pid = #{departId} " +
"LEFT JOIN negative_blame nb ON ng.id = nb.negativeId " +
"WHERE problemSourcesCode = 16 " +
"AND ng.crtTime BETWEEN #{beginTime} AND #{endTime} ")
VideoSuperviseCountVo getSubOneAllVideoSuperviseCount(Date beginTime, Date endTime, Integer departId); VideoSuperviseCountVo getSubOneAllVideoSuperviseCount(Date beginTime, Date endTime, Integer departId);
@Select("SELECT npr.threeLevelContent AS `name`, " + @Select("SELECT npr.threeLevelContent AS `name`, " +

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

@ -16,14 +16,25 @@ import java.io.Serializable;
public class GlobalMapIconVo { public class GlobalMapIconVo {
private String name; // 分县市局名称 private String name; // 分县市局名称
private Integer totalPro; // 总问题 //现场督查
private Integer supervisePro; // 督察问题 Long supervisionPro;
private Integer numSupervisePro;
private Integer caseVerifyPro; // 案件核查问题 //数字督查(14,15,16)
private Integer mailPro; // 信访投诉问题 Long numSupervisionPro;
private Integer policePro; // 警务评议问题 //案件核查
private Integer reviewPro; // 审计监督问题 Long caseVerificationPro;
private Integer departId; // 分县市局ID //信访投诉
Long complaintPro;
// 民意感知
Long talkPro;
//审计
Long auditPro;
//总数
Long totalPro;
//局长信箱
private Long mailboxNumber;
private String departId; // 分县市局ID
} }

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

@ -75,6 +75,43 @@ public class DataMailService extends ServiceImpl<DataPetitionComplaintMapper, Da
return temp; return temp;
} }
public MailOverviewVo mailCount(Integer deptId,Date beginTime, Date endTime) {
//todo 信访投诉大屏中央统计
MailOverviewVo temp = new MailOverviewVo();
// 国家信访
QueryWrapper<DataPetitionComplaint> countryQueryWrapper = new QueryWrapper<>();
countryQueryWrapper.eq("problem_sources_code", 21);
countryQueryWrapper.between("create_time", beginTime, endTime);
countryQueryWrapper.eq("second_depart_id",deptId);
Long countryMail = dataPetitionComplaintMapper.selectCount(countryQueryWrapper);
// 公安部信访
QueryWrapper<DataPetitionComplaint> policeQueryWrapper = new QueryWrapper<>();
policeQueryWrapper.eq("problem_sources_code", 22);
policeQueryWrapper.between("create_time", beginTime, endTime);
policeQueryWrapper.eq("second_depart_id",deptId);
Long policeMail = dataPetitionComplaintMapper.selectCount(policeQueryWrapper);
// 12337
long mail12337 = negativeService.count(
new LambdaQueryWrapper<Negative>()
.between(Negative::getCrtTime, beginTime, endTime)
.eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.XF12337.getValue())
.eq(Negative::getSecondInvolveDepartId,deptId)
);
// 局长信箱
long mailCount = negativeService.count(new LambdaQueryWrapper<Negative>().between(Negative::getCrtTime, beginTime, endTime).eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.JZXX.getValue()) .eq(Negative::getSecondInvolveDepartId,deptId));
temp.setCountryMail(countryMail);
temp.setPoliceMail(policeMail);
temp.setNumberMail(mail12337);
temp.setManageMail(mailCount);
return temp;
}
// 一级信访大屏地图数据统计 // 一级信访大屏地图数据统计
public List<MailMapIconVo> getMailMapIcon(Date beginTime, Date endTime) { public List<MailMapIconVo> getMailMapIcon(Date beginTime, Date endTime) {
List<MailMapIconVo> res = new ArrayList<>(); List<MailMapIconVo> res = new ArrayList<>();

Loading…
Cancel
Save