Browse Source

fix--抚慰大屏重构 step2

master
buaixuexideshitongxue 3 weeks ago
parent
commit
7a4d40d0c3
  1. 123
      src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java
  2. 56
      src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java
  3. 14
      src/main/java/com/biutag/supervision/service/datav/DatavService.java
  4. 43
      src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java

123
src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java

@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.biutag.supervision.constants.enums.RpcApplyTypeEnum;
import com.biutag.supervision.mapper.RpcApplyMapper;
import com.biutag.supervision.mapper.RpcInfringerResultMapper;
@ -14,11 +13,9 @@ import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.RpcApply;
import com.biutag.supervision.pojo.entity.RpcInfringerResult;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.entity.SupDictData;
import com.biutag.supervision.pojo.model.DataRightsComfortModel;
import com.biutag.supervision.pojo.request.datav.DataVRequest;
import com.biutag.supervision.pojo.vo.ComfortMapIconVo;
import com.biutag.supervision.pojo.vo.EchartsVo;
import com.biutag.supervision.service.DataRightsComfortService;
import com.biutag.supervision.service.RpcApplyService;
import com.biutag.supervision.service.SupDepartService;
@ -141,16 +138,6 @@ public class DataVRightsComfortController {
return new PieItem(name, (int) (size - number +numData));
}
}).toList());
// Map<String, List<RpcApply>> collect = list.stream()
// .filter(s-> StrUtil.isNotEmpty(s.getInfringerHandle()) )
// .collect(Collectors.groupingBy(RpcApply::getInfringerHandle));
// // 打处情况
// result.setPunishmentSituation(collect.keySet().stream().map(name -> {
// return new PieItem(name, collect.get(name).size());
// }).toList());
}),
CompletableFutureUtil.runSyncObject(() -> {
// 抚慰人数
@ -160,25 +147,7 @@ public class DataVRightsComfortController {
// 抚慰金额(万元)
result.setComfortMoney(dataRightsComfortService.countComfortMoney(beginTime, finalEndTime));
}),
// CompletableFutureUtil.runSyncObject(() -> {
// // 抚慰金额情况 - 分县市局
// result.setCountyComfortMoneyBarList(rpcApplyMapper.selectComfortMoneyBarList(beginTime, finalEndTime, 3));
// }),
//
// CompletableFutureUtil.runSyncObject(() -> {
// // 抚慰金额情况 - 局属单位
// result.setBureauComfortMoneyBarList(rpcApplyMapper.selectComfortMoneyBarList(beginTime, finalEndTime, 4));
// }),
// CompletableFutureUtil.runSyncObject(()->{
// // 维权案件情况 - 分县市局
// result.setCountyRightsBarList(rpcApplyMapper.selectProtectRightsBarList(beginTime, finalEndTime, 3));
//
// }),
// CompletableFutureUtil.runSyncObject(()->{
// // 维权案件情况 - 局属单位
// result.setBureauRightsBarList(rpcApplyMapper.selectProtectRightsBarList(beginTime, finalEndTime, 4));
// }),
CompletableFutureUtil.runSyncObject(()->{
//案件类别 - 刑事
result.setCrownCaseBarList(rpcApplyMapper.selectCaseData(beginTime, finalEndTime,"1"));
@ -186,37 +155,35 @@ public class DataVRightsComfortController {
CompletableFutureUtil.runSyncObject(()->{
//案件类别 - 行政
result.setAdministrativeCaseList(rpcApplyMapper.selectCaseData( beginTime, finalEndTime,"2"));
}),
CompletableFutureUtil.runSyncObject(() -> {
// 抚慰情况
List<PieItem> data = rpcApplyMapper.selectComfortPoliceInjurySituation(beginTime, finalEndTime);
//获取字典中的民警类型
List<SupDictData> supDictDataList = supDictDataService.list( new LambdaQueryWrapper<SupDictData>().eq(SupDictData::getDictType,"personType"));
data.forEach(s->{
Optional<SupDictData> supDictData = supDictDataList.stream().filter(v->v.getDictValue().equals(s.getName())).findFirst();
supDictData.ifPresent(dictData -> s.setName(dictData.getDictLabel()));
});
result.setComfortPoliceInjurySituation(data);
}),
CompletableFutureUtil.runSyncObject(() -> {
// 民辅警受伤类别
result.setComfortInjuryCategory(rpcApplyMapper.selectComfortInjuryCategory(beginTime, finalEndTime));
})
// CompletableFutureUtil.runSyncObject(() -> {
// // 抚慰情况
// List<PieItem> data = rpcApplyMapper.selectComfortPoliceInjurySituation(beginTime, finalEndTime);
// //获取字典中的民警类型
//
// List<SupDictData> supDictDataList = supDictDataService.list( new LambdaQueryWrapper<SupDictData>().eq(SupDictData::getDictType,"personType"));
//
// data.forEach(s->{
// Optional<SupDictData> supDictData = supDictDataList.stream().filter(v->v.getDictValue().equals(s.getName())).findFirst();
// supDictData.ifPresent(dictData -> s.setName(dictData.getDictLabel()));
// });
//
// result.setComfortPoliceInjurySituation(data);
// })
// CompletableFutureUtil.runSyncObject(() -> {
// // 民辅警受伤类别
// result.setComfortInjuryCategory(rpcApplyMapper.selectComfortInjuryCategory(beginTime, finalEndTime));
// })
).join();
return Result.success(result);
}
// 抚慰情况
@GetMapping("/getComfortSituation")
public Result<JSONObject> getComfortSituation(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
List<PieItem> comfortSituationList = rpcApplyMapper.selectComfortSituation(beginTime, endTime);
JSONObject data = new JSONObject().fluentPut("comfortSituationList", comfortSituationList);
@PostMapping("/getComfortSituation")
public Result<JSONObject> getComfortSituation(@RequestBody DataVRequest request) {
List<PieItem> comfortPoliceInjurySituation = rpcApplyMapper.selectComfortSituation(request.getBeginTime(), request.getEndTime());
JSONObject data = new JSONObject().fluentPut("comfortPoliceInjurySituation", comfortPoliceInjurySituation);
return Result.success(data);
}
@ -269,44 +236,20 @@ public class DataVRightsComfortController {
// region 右边
// 民辅警受伤人数情况和受伤类别
@GetMapping("/getPoliceHurtSituationAndHurtType")
public Result<JSONObject> getPoliceHurtSituationAndHurtType(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
List<EchartsVo> policeHurtSituationList = rpcApplyMapper.getPoliceHurtSituation(beginTime, endTime); // 人数情况
List<EchartsVo> policeHurtTypeList = rpcApplyMapper.getPoliceHurtType(beginTime, endTime); // 受伤类别
JSONObject data = new JSONObject()
.fluentPut("policeHurtSituationList", policeHurtSituationList)
.fluentPut("policeHurtTypeList", policeHurtTypeList);
return Result.success(data);
@Operation(summary = "民辅警受伤情况")
@PostMapping("/getPoliceHurtSituationAndHurtType")
public Result<JSONObject> getPoliceHurtSituationAndHurtType(@RequestBody DataVRequest request) {
return datavService.getPoliceHurtSituationAndHurtType(request);
}
// 发案情况占比
@GetMapping("/getCaseAriseSituationRate")
public Result<JSONObject> getCaseAriseSituationRate(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime);
// 发案环节
List<EchartsVo> incidentLinkList =rpcApplyMapper.getIncidentLink(beginTime, endTime);
// 发案警种
List<EchartsVo> incidentPoliceList = rpcApplyMapper.getIncidentPolice(beginTime, endTime);
List<SupDictData> supDictDataList = supDictDataService.list( new LambdaQueryWrapper<SupDictData>().eq(SupDictData::getDictType,"personType"));
if(CollectionUtils.isNotEmpty(incidentLinkList)){
incidentPoliceList.forEach(s->{
Optional<SupDictData> supDictData = supDictDataList.stream().filter(v->v.getDictValue().equals(s.getName())).findFirst();
supDictData.ifPresent(dictData -> s.setName(dictData.getDictLabel()));
});
}
// 发案单位
List<EchartsVo> incidentOrgList = rpcApplyMapper.getIncidentOrg(beginTime, endTime);
JSONObject data = new JSONObject()
.fluentPut("incidentLinkList", incidentLinkList)
.fluentPut("incidentPoliceTypeList", incidentPoliceList)
.fluentPut("incidentOrgList", incidentOrgList);
return Result.success(data);
@Operation(summary = "发案情况占比")
@PostMapping("/getCaseAriseSituationRate")
public Result<JSONObject> getCaseAriseSituationRate(@RequestBody DataVRequest request) {
return datavService.getCaseAriseSituationRate(request);
}
// endregion
}

56
src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java

@ -22,10 +22,16 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
"WHERE b.apply_date BETWEEN #{beginTime} AND #{endTime} AND b.type = 2 AND b.rpc_status='completed' ")
Double countComfortMoney(Date beginTime, Date endTime);
@Select("SELECT c.job name, COUNT(c.job) value FROM sup_police c JOIN " +
"(SELECT a.emp_no FROM rpc_apply_person a LEFT JOIN rpc_apply b ON a.rpc_id = b.rpc_id " +
"WHERE b.crt_time BETWEEN #{beginTime} AND #{endTime} AND b.type = 2) d on c.emp_no = d.emp_no " +
"GROUP BY c.job")
@Select("SELECT " +
"b.person_type,\n" +
"IFNULL( sdd.dict_label,'未知') as name , " +
"count(*) as `value`FROM rpc_apply as a " +
"LEFT JOIN (SELECT emp_no, person_type, `name` FROM sup_police WHERE del =0) as b on a.applicant_emp_no = b.emp_no " +
"LEFT JOIN sup_dict_data sdd ON b.person_type = sdd.dict_value AND sdd.dict_type = 'personType' " +
"WHERE a.apply_date >=#{beginTime} and a.apply_date <= #{endTime} " +
"AND a.type = 2 " +
"AND a.rpc_status = 'completed' " +
"GROUP BY person_type")
List<PieItem> selectComfortSituation(Date beginTime, Date endTime);
@ -109,11 +115,17 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
List<EchartsVo> getIncidentLink(Date beginTime, Date endTime);
@Select("SELECT person_type as name,COUNT(*) as value from rpc_apply a " +
"LEFT JOIN (SELECT emp_no,person_type from sup_police WHERE del = 0) as b " +
"ON a.input_emp_no = b.emp_no " +
"WHERE a.crt_time BETWEEN #{beginTime} and #{endTime}" +
" GROUP BY person_type HAVING name is NOT NULL")
@Select("SELECT " +
"b.person_type, " +
"IFNULL( sdd.dict_label,'未知') as name , " +
"count(*) as `value` " +
"FROM rpc_apply ra " +
"LEFT JOIN rpc_apply_person rap ON ra.rpc_id = rap.rpc_id " +
"LEFT JOIN ( SELECT emp_no, person_type FROM sup_police WHERE del = 0 ) AS b ON rap.emp_no = b.emp_no " +
"LEFT JOIN sup_dict_data sdd ON b.person_type = sdd.dict_value AND sdd.dict_type = 'personType' " +
"WHERE ra.crt_time >= #{beginTime} AND ra.crt_time <= #{endTime} " +
"AND ra.type = 1 " +
"GROUP BY b.person_type; ")
List<EchartsVo> getIncidentPolice(Date beginTime, Date endTime);
@ -135,6 +147,18 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
" GROUP BY sdp.short_name HAVING name is NOT NULL ")
List<EchartsVo> getIncidentOrg(Date beginTime, Date endTime);
@Select("SELECT * FROM rpc_apply ra " +
"LEFT JOIN sup_depart sd on ra.depart_id = sd.id " +
"LEFT JOIN sup_depart sdd on sd.pid = sdd.id " +
"LEFT JOIN sup_depart sddd on sdd.pid = sddd.id " +
"WHERE ra.rpc_id is not null " +
"AND ra.type =1 " +
"AND ra.verified = 0 " +
"AND ra.crt_time >= #{beginTime} AND ra.crt_time <= #{endTime} " +
"AND (sd.id =#{id} OR sdd.id=#{id} or sddd.id=#{id});")
List<RpcApply> getIncidentOrg(Date beginTime, Date endTime, String id);
// 二级大屏
@Select("SELECT " +
"count(*) " +
@ -273,7 +297,8 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
@Select(" SELECT sdp.short_name as label, COUNT(*) as value from rpc_apply ra " +
" left join sup_depart sdp on ra.depart_id = sdp.id " +
" where sdp.pid = #{departId} " +
" and ra.type =1 and sdp.statistics_group_id = #{departGroupId} and ra.verified= '2' " +
" and ra.type =1 and sdp.statistics_group_id = #{departGroupId} " +
" and ra.verified= '0' " +
" and ra.crt_time BETWEEN #{beginTime} AND #{endTime} " +
" GROUP BY sdp.short_name order by value desc")
List<BarItem> selectSubPcsProtectRightsBarList(Date beginTime, Date endTime, Integer departId, Integer departGroupId);
@ -281,11 +306,14 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
* 按事发时间进行筛选
* 维权案件情况大队-二级大屏
* */
@Select(" SELECT sdp.short_name as label , COUNT(*) as value from rpc_apply ra " +
@Select(" SELECT sdp.short_name as label , COUNT(*) as value " +
"from rpc_apply ra " +
" left join sup_depart sdp on ra.depart_id = sdp.id " +
" where sdp.pid = #{departId} " +
" and ra.type =1 and sdp.statistics_group_id != #{departGroupId} " +
" and ra.crt_time BETWEEN #{beginTime} AND #{endTime} and ra.verified= '2' " +
" and ra.type =1 " +
" and sdp.statistics_group_id != #{departGroupId} " +
" and ra.crt_time BETWEEN #{beginTime} AND #{endTime} " +
" and ra.verified= '0' " +
" GROUP BY sdp.short_name order by value desc")
List<BarItem> selectSubDdProtectRightsBarList(Date beginTime, Date endTime, Integer departId, Integer departGroupId);
@ -299,6 +327,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
" where " +
" sdp.pid= #{departId} " +
" and r.type = 2 " +
" AND r.rpc_status ='completed' " +
" and sdp.statistics_group_id = #{departGroupId}" +
" and r.crt_time between #{beginTime} and #{endTime} " +
" GROUP BY sdp.short_name" +
@ -313,6 +342,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
" left JOIN sup_depart sdp on r.depart_id = sdp.id " +
" where " +
" sdp.pid= #{departId} " +
" AND r.rpc_status ='completed' " +
" and r.type = 2 " +
" and sdp.statistics_group_id != #{departGroupId}" +
" and r.crt_time between #{beginTime} and #{endTime} " +

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

@ -84,4 +84,18 @@ public interface DatavService {
*/
Result<JSONObject> getComfortMoneyBarList(DataVRequest request);
/**
* 维权抚慰 发案情况占比
* @param request
* @return
*/
Result<JSONObject> getCaseAriseSituationRate(DataVRequest request);
/**
* 维权抚慰 民辅警受伤情况
* @param request
* @return
*/
Result<JSONObject> getPoliceHurtSituationAndHurtType(DataVRequest request);
}

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

@ -5,8 +5,10 @@ import cn.hutool.core.date.DateUtil;
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.constants.enums.*;
import com.biutag.supervision.constants.enums.BlameType;
import com.biutag.supervision.constants.enums.DepartGroupEnum;
import com.biutag.supervision.constants.enums.InspectCaseEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum;
import com.biutag.supervision.constants.enums.invest.ReportProjectNodeEnum;
import com.biutag.supervision.mapper.RpcApplyMapper;
@ -14,6 +16,7 @@ import com.biutag.supervision.mapper.RpcComfortPacksMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.DepartAndSubDepartDto;
import com.biutag.supervision.pojo.dto.common.BarItem;
import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.entity.report.ReportProject;
import com.biutag.supervision.pojo.param.*;
@ -31,7 +34,6 @@ import com.biutag.supervision.repository.supdepart.SupDepartResourceService;
import com.biutag.supervision.service.*;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.ehcache.sizeof.SizeOf;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@ -594,4 +596,39 @@ public class DatavServiceImpl implements DatavService {
object.fluentPut("bureauComfortMoneyBarList", bureauComfortMoneyBarList);
return Result.success(object);
}
@Override
public Result<JSONObject> getCaseAriseSituationRate(DataVRequest request) {
Date beginTime = request.getBeginTime();
Date endTime = request.getEndTime();
// 发案环节
List<EchartsVo> incidentLinkList =rpcApplyMapper.getIncidentLink(beginTime, endTime);
// 发案警种
List<EchartsVo> incidentPoliceList = rpcApplyMapper.getIncidentPolice(beginTime, endTime);
// 发案单位
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam();
supDepartQueryParam.setStatisticsGroupId(3);
List<SupDepart> fxsjDw = supDepartResourceService.query(supDepartQueryParam);
List<EchartsVo> incidentOrgList = new ArrayList<>();
for (SupDepart supDepart : fxsjDw) {
List<RpcApply> rpcApplyList = rpcApplyMapper.getIncidentOrg(beginTime, endTime, supDepart.getId());
if (CollectionUtil.isNotEmpty(rpcApplyList)){
EchartsVo barItem = new EchartsVo(supDepart.getShortName(), rpcApplyList.size());
incidentOrgList.add(barItem);
}
}
JSONObject data = new JSONObject()
.fluentPut("incidentLinkList", incidentLinkList)
.fluentPut("incidentPoliceTypeList", incidentPoliceList)
.fluentPut("incidentOrgList", incidentOrgList);
return Result.success(data);
}
@Override
public Result<JSONObject> getPoliceHurtSituationAndHurtType(DataVRequest request) {
List<PieItem> comfortInjuryCategory = rpcApplyMapper.selectComfortInjuryCategory(request.getBeginTime(), request.getEndTime());
JSONObject data = new JSONObject()
.fluentPut("comfortInjuryCategory", comfortInjuryCategory);
return Result.success(data);
}
}

Loading…
Cancel
Save