diff --git a/src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java b/src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java index 78e67a1..0836505 100644 --- a/src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java +++ b/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> 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 data = rpcApplyMapper.selectComfortPoliceInjurySituation(beginTime, finalEndTime); - //获取字典中的民警类型 - - List supDictDataList = supDictDataService.list( new LambdaQueryWrapper().eq(SupDictData::getDictType,"personType")); - - data.forEach(s->{ - Optional 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 data = rpcApplyMapper.selectComfortPoliceInjurySituation(beginTime, finalEndTime); +// //获取字典中的民警类型 +// +// List supDictDataList = supDictDataService.list( new LambdaQueryWrapper().eq(SupDictData::getDictType,"personType")); +// +// data.forEach(s->{ +// Optional 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 getComfortSituation(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, - @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { - endTime = DateUtil.endOfDay(endTime); - List comfortSituationList = rpcApplyMapper.selectComfortSituation(beginTime, endTime); - JSONObject data = new JSONObject().fluentPut("comfortSituationList", comfortSituationList); + @PostMapping("/getComfortSituation") + public Result getComfortSituation(@RequestBody DataVRequest request) { + List 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 getPoliceHurtSituationAndHurtType(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, - @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { - endTime = DateUtil.endOfDay(endTime); - List policeHurtSituationList = rpcApplyMapper.getPoliceHurtSituation(beginTime, endTime); // 人数情况 - List 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 getPoliceHurtSituationAndHurtType(@RequestBody DataVRequest request) { + return datavService.getPoliceHurtSituationAndHurtType(request); } - // 发案情况占比 - @GetMapping("/getCaseAriseSituationRate") - public Result getCaseAriseSituationRate(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, - @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { - endTime = DateUtil.endOfDay(endTime); - // 发案环节 - List incidentLinkList =rpcApplyMapper.getIncidentLink(beginTime, endTime); - // 发案警种 - List incidentPoliceList = rpcApplyMapper.getIncidentPolice(beginTime, endTime); - List supDictDataList = supDictDataService.list( new LambdaQueryWrapper().eq(SupDictData::getDictType,"personType")); - if(CollectionUtils.isNotEmpty(incidentLinkList)){ - incidentPoliceList.forEach(s->{ - Optional supDictData = supDictDataList.stream().filter(v->v.getDictValue().equals(s.getName())).findFirst(); - supDictData.ifPresent(dictData -> s.setName(dictData.getDictLabel())); - }); - } - // 发案单位 - List 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 getCaseAriseSituationRate(@RequestBody DataVRequest request) { + return datavService.getCaseAriseSituationRate(request); + } + // endregion } diff --git a/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java b/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java index 2337711..3849717 100644 --- a/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java +++ b/src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java @@ -22,10 +22,16 @@ public interface RpcApplyMapper extends BaseMapper { "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 selectComfortSituation(Date beginTime, Date endTime); @@ -109,11 +115,17 @@ public interface RpcApplyMapper extends BaseMapper { List 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 getIncidentPolice(Date beginTime, Date endTime); @@ -135,6 +147,18 @@ public interface RpcApplyMapper extends BaseMapper { " GROUP BY sdp.short_name HAVING name is NOT NULL ") List 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 getIncidentOrg(Date beginTime, Date endTime, String id); + + // 二级大屏 @Select("SELECT " + "count(*) " + @@ -273,7 +297,8 @@ public interface RpcApplyMapper extends BaseMapper { @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 selectSubPcsProtectRightsBarList(Date beginTime, Date endTime, Integer departId, Integer departGroupId); @@ -281,11 +306,14 @@ public interface RpcApplyMapper extends BaseMapper { * 按事发时间进行筛选 * 维权案件情况大队-二级大屏 * */ - @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 selectSubDdProtectRightsBarList(Date beginTime, Date endTime, Integer departId, Integer departGroupId); @@ -299,6 +327,7 @@ public interface RpcApplyMapper extends BaseMapper { " 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 { " 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} " + diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavService.java b/src/main/java/com/biutag/supervision/service/datav/DatavService.java index 4f9df8c..426253d 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavService.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavService.java @@ -84,4 +84,18 @@ public interface DatavService { */ Result getComfortMoneyBarList(DataVRequest request); + /** + * 维权抚慰 发案情况占比 + * @param request + * @return + */ + Result getCaseAriseSituationRate(DataVRequest request); + + /** + * 维权抚慰 民辅警受伤情况 + * @param request + * @return + */ + Result getPoliceHurtSituationAndHurtType(DataVRequest request); + } diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java index 3f671f2..00d5f2e 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java +++ b/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 getCaseAriseSituationRate(DataVRequest request) { + Date beginTime = request.getBeginTime(); + Date endTime = request.getEndTime(); + // 发案环节 + List incidentLinkList =rpcApplyMapper.getIncidentLink(beginTime, endTime); + // 发案警种 + List incidentPoliceList = rpcApplyMapper.getIncidentPolice(beginTime, endTime); + // 发案单位 + SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam(); + supDepartQueryParam.setStatisticsGroupId(3); + List fxsjDw = supDepartResourceService.query(supDepartQueryParam); + List incidentOrgList = new ArrayList<>(); + for (SupDepart supDepart : fxsjDw) { + List 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 getPoliceHurtSituationAndHurtType(DataVRequest request) { + List comfortInjuryCategory = rpcApplyMapper.selectComfortInjuryCategory(request.getBeginTime(), request.getEndTime()); + JSONObject data = new JSONObject() + .fluentPut("comfortInjuryCategory", comfortInjuryCategory); + return Result.success(data); + } }