7c8f38cc 张雷

refactor(module): 重构报表统计逻辑

- 优化了巡检分析、目标统计等模块的计算逻辑
- 修复了部分除零错误和数据展示问题
- 重构了部门查询方式,提高了代码复用性和可维护性- 优化了数据库连接配置,去除了不必要的转义字符
1 个父辈 4ba16d7b
package com.skua.modules.statistics.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.skua.core.api.vo.Result;
import com.skua.core.context.BaseContextHandler;
import com.skua.modules.statistics.service.IReportTargetStatisticsService;
......@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
......@@ -48,26 +50,17 @@ public class ReportTargetStatisticsController {
}
ReportTargetStatisticsVO targetStatisticsVO = targetStatisticsService.targetWaterStatistics(departIds,year,startTime,endTime);
SysDepart depart = departService.getById("1892199062790823936");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1892199062790823936","1");
ReportTargetStatisticsVO targetStatisticsVO_nj = targetStatisticsService.targetWaterStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_nj.setDepartName(depart.getDepartName()); targetStatisticsVO_nj.setDepartId(depart.getId());
depart = departService.getById("1892199890272477184");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1892199890272477184","1");
ReportTargetStatisticsVO targetStatisticsVO_wh = targetStatisticsService.targetWaterStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_wh.setDepartName(depart.getDepartName()); targetStatisticsVO_wh.setDepartId(depart.getId());
depart = departService.getById("1818215543140909056");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1818215543140909056","1");
ReportTargetStatisticsVO targetStatisticsVO_ef = targetStatisticsService.targetWaterStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_ef.setDepartName(depart.getDepartName()); targetStatisticsVO_ef.setDepartId(depart.getId());
List<ReportTargetStatisticsVO> dataList = new ArrayList<>();
dataList.add( targetStatisticsVO_nj);
dataList.add(targetStatisticsVO_wh );
dataList.add(targetStatisticsVO_ef );
QueryWrapper<SysDepart> queryWrapper = new QueryWrapper<>();
//三个分区域
queryWrapper.eq("depart_type", "0");
List<SysDepart> departList = departService.list(queryWrapper);
for (SysDepart depart : departList) {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),depart.getId(),"1");
ReportTargetStatisticsVO qyTargetStatisticsVO = targetStatisticsService.targetWaterStatistics(departIds,year,startTime,endTime);
qyTargetStatisticsVO.setDepartName(depart.getDepartName()); qyTargetStatisticsVO.setDepartId(depart.getId());
dataList.add(qyTargetStatisticsVO);
}
targetStatisticsVO.setDataList( dataList );
result.setSuccess(true);
result.setResult(targetStatisticsVO);
......@@ -108,28 +101,18 @@ public class ReportTargetStatisticsController {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),departId,"1");
}
ReportTargetEnergyVO targetStatisticsVO = targetStatisticsService.targetEnergyStatistics(departIds,year,startTime,endTime);
SysDepart depart = departService.getById("1892199062790823936");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1892199062790823936","1");
ReportTargetEnergyVO targetStatisticsVO_nj = targetStatisticsService.targetEnergyStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_nj.setDepartName(depart.getDepartName()); targetStatisticsVO_nj.setDepartId(depart.getId());
depart = departService.getById("1892199890272477184");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1892199890272477184","1");
ReportTargetEnergyVO targetStatisticsVO_wh = targetStatisticsService.targetEnergyStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_wh.setDepartName(depart.getDepartName()); targetStatisticsVO_wh.setDepartId(depart.getId());
depart = departService.getById("1818215543140909056");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1818215543140909056","1");
ReportTargetEnergyVO targetStatisticsVO_ef = targetStatisticsService.targetEnergyStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_ef.setDepartName(depart.getDepartName()); targetStatisticsVO_ef.setDepartId(depart.getId());
List<ReportTargetEnergyVO> dataList = new ArrayList<>();
dataList.add( targetStatisticsVO_nj);
dataList.add(targetStatisticsVO_wh );
dataList.add(targetStatisticsVO_ef );
targetStatisticsVO.setDataList( dataList );
QueryWrapper<SysDepart> queryWrapper = new QueryWrapper<>();
//三个分区域
queryWrapper.eq("depart_type", "0");
List<SysDepart> departList = departService.list(queryWrapper);
for (SysDepart depart : departList) {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),depart.getId(),"1");
ReportTargetEnergyVO qyTargetStatisticsVO = targetStatisticsService.targetEnergyStatistics(departIds,year,startTime,endTime);
qyTargetStatisticsVO.setDepartName(depart.getDepartName()); qyTargetStatisticsVO.setDepartId(depart.getId());
dataList.add(qyTargetStatisticsVO);
}
targetStatisticsVO.setDataList(dataList);
result.setSuccess(true);
result.setResult(targetStatisticsVO);
} catch (Exception e) {
......@@ -172,28 +155,18 @@ public class ReportTargetStatisticsController {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),departId,"1");
}
ReportTargetStatisticsVO targetStatisticsVO = targetStatisticsService.targetCostStatistics(departIds,year,startTime,endTime);
SysDepart depart = departService.getById("1892199062790823936");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1892199062790823936","1");
ReportTargetStatisticsVO targetStatisticsVO_nj = targetStatisticsService.targetCostStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_nj.setDepartName(depart.getDepartName()); targetStatisticsVO_nj.setDepartId(depart.getId());
depart = departService.getById("1892199890272477184");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1892199890272477184","1");
ReportTargetStatisticsVO targetStatisticsVO_wh = targetStatisticsService.targetCostStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_wh.setDepartName(depart.getDepartName()); targetStatisticsVO_wh.setDepartId(depart.getId());
depart = departService.getById("1818215543140909056");
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),"1818215543140909056","1");
ReportTargetStatisticsVO targetStatisticsVO_ef = targetStatisticsService.targetCostStatistics(departIds,year,startTime,endTime);
targetStatisticsVO_ef.setDepartName(depart.getDepartName()); targetStatisticsVO_ef.setDepartId(depart.getId());
List<ReportTargetStatisticsVO> dataList = new ArrayList<>();
dataList.add( targetStatisticsVO_nj);
dataList.add(targetStatisticsVO_wh );
dataList.add(targetStatisticsVO_ef );
targetStatisticsVO.setDataList( dataList );
QueryWrapper<SysDepart> queryWrapper = new QueryWrapper<>();
//三个分区域
queryWrapper.eq("depart_type", "0");
List<SysDepart> departList = departService.list(queryWrapper);
for (SysDepart depart : departList) {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts(),depart.getId(),"1");
ReportTargetStatisticsVO qyTargetStatisticsVO = targetStatisticsService.targetCostStatistics(departIds,year,startTime,endTime);
qyTargetStatisticsVO.setDepartName(depart.getDepartName()); qyTargetStatisticsVO.setDepartId(depart.getId());
dataList.add(qyTargetStatisticsVO);
}
targetStatisticsVO.setDataList(dataList);
result.setSuccess(true);
result.setResult(targetStatisticsVO);
} catch (Exception e) {
......
......@@ -86,7 +86,7 @@ spring:
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
datasource:
master:
url: jdbc:mysql://47.104.179.187:6003/sk-zhangfa?characterEncoding=UTF-8&useUnicode=true&useSSL=false
......
......@@ -20,6 +20,12 @@ public interface IInspectionAnalysisService {
* @return
*/
InspectionTaskIndicatorsVO getInspectionTaskIndicators(String startDate, String endDate);
/***
* 巡检分析-巡检任务指标
* @param startDate
* @param endDate
* @return
*/
InspectionTaskIndicatorsVO getInspectionTaskIndicatorsNew(String startDate, String endDate);
/***
* 巡检分析-巡检任务指标-详情
......
......@@ -71,7 +71,6 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
numberFormat.setMaximumFractionDigits(2);
}
@Override
public Map<String, Object> getAllInspectionHistoryAnalysis(String moduleType, String startTime, String endTime, String departId) throws Exception {
......@@ -491,19 +490,21 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
return inspectionTaskIndicatorsVO;
}
@Override
public InspectionTaskIndicatorsVO getInspectionTaskIndicatorsNew(String startDate, String endDate){
InspectionTaskOverviewVO inspectionTaskOverviewVO = getInspectionTaskOverviewNew( startDate, endDate);
InspectionTaskIndicatorsVO inspectionTaskIndicatorsVO = new InspectionTaskIndicatorsVO();
//完成率
String completionRate = "0";
completionRate = numberFormat.format(inspectionTaskOverviewVO.getCheckedInspectionTaskCount() / (double) inspectionTaskOverviewVO.getTotalInspectionTaskCount() * 100);
//未检率
String unCompletionRate = "0";
unCompletionRate = numberFormat.format( inspectionTaskOverviewVO.getNotCheckedInspectionTaskCount()/ (double) inspectionTaskOverviewVO.getTotalInspectionTaskCount() * 100);
//异常率
String abnormalRate = "0";
if(inspectionTaskOverviewVO.getCheckedInspectionTaskCount() > 0){
abnormalRate = numberFormat.format(inspectionTaskOverviewVO.getAbnormalInspectionTaskCount() / (double) inspectionTaskOverviewVO.getCheckedInspectionTaskCount() * 100);
completionRate = numberFormat.format(inspectionTaskOverviewVO.getCheckedInspectionTaskCount() / (double) inspectionTaskOverviewVO.getTotalInspectionTaskCount() * 100);
unCompletionRate = numberFormat.format( inspectionTaskOverviewVO.getNotCheckedInspectionTaskCount()/ (double) inspectionTaskOverviewVO.getTotalInspectionTaskCount() * 100);
}
//异常项处理率
// String processedAbnormalRate = "0";
// if (abnormalItemsCount != 0) {
......@@ -524,6 +525,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
* @param endDate
* @return
*/
@Override
public List<InspectionEquipIndicatorsDetailVO> getInspectionTaskIndicatorsDetail(String departIds, String startDate, String endDate){
return inspectionAnalysisMapper.getInspectionEquipIndicatorsDetail(departIds, startDate, endDate);
}
......@@ -659,24 +661,30 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
return inspectionEquipIndicatorsVO;
}
@Override
public InspectionEquipIndicatorsVO getInspectionEquipIndicatorsNew(String startDate, String endDate) {
InspectionEquipIndicatorsVO inspectionEquipIndicatorsVO = new InspectionEquipIndicatorsVO();
InspectionEquipOverviewVO inspectionEquipOverviewNew = getInspectionEquipOverviewNew(startDate, endDate);
//完成率
String finishRate = "0";
finishRate = numberFormat.format( inspectionEquipOverviewNew.getCheckedInspectionEquipCount() / (double) inspectionEquipOverviewNew.getTotalInspectionEquipCount() * 100);
//覆盖率
String completionRate = "0";
completionRate = numberFormat.format( inspectionEquipOverviewNew.getCheckedInspectionEquipCount() / (double) inspectionEquipOverviewNew.getTotalInspectionEquipCount() * 100);
//未检率
String unCompletionRate = "0";
if(inspectionEquipOverviewNew.getTotalInspectionEquipCount()>0){
finishRate = numberFormat.format( inspectionEquipOverviewNew.getCheckedInspectionEquipCount() / (double) inspectionEquipOverviewNew.getTotalInspectionEquipCount() * 100);
completionRate = numberFormat.format( inspectionEquipOverviewNew.getCheckedInspectionEquipCount() / (double) inspectionEquipOverviewNew.getTotalInspectionEquipCount() * 100);
unCompletionRate = numberFormat.format(inspectionEquipOverviewNew.getNotCheckedInspectionEquipCount() / (double) inspectionEquipOverviewNew.getTotalInspectionEquipCount() * 100);
}
//异常率
String abnormalRate = "0";
if(inspectionEquipOverviewNew.getCheckedInspectionEquipCount()>0){
abnormalRate = numberFormat.format( inspectionEquipOverviewNew.getAbnormalInspectionEquipCount() / (double) inspectionEquipOverviewNew.getCheckedInspectionEquipCount() * 100);
}
//异常项处理率
String processedAbnormalRate = "0";
/* if (abnormalItemsCount != 0) {
......@@ -696,6 +704,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
* @param endDate
* @return
*/
@Override
public List<InspectionEquipIndicatorsDetailVO> getInspectionEquipIndicatorsDetail(String departIds, String startDate, String endDate){
return inspectionAnalysisMapper.getInspectionEquipIndicatorsDetail( departIds, startDate, endDate);
}
......@@ -812,7 +821,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
}
return inspectionTaskOverviewVO;
}
@Override
public InspectionTaskOverviewVO getInspectionTaskOverviewNew(String startDate, String endDate) {
String departIds = BaseContextHandler.getDeparts();
InspectionTaskOverviewVO inspectionTaskOverviewVO = new InspectionTaskOverviewVO();
......@@ -846,6 +855,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
* @param endDate
* @return
*/
@Override
public List<InspectionTaskOverviewDetailVO> getInspectionTaskOverviewDetail(String departIds, String startDate, String endDate){
return inspectionAnalysisMapper.getInspectionTaskOverviewDetail(departIds, startDate, endDate);
}
......@@ -962,7 +972,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
return inspectionEquipOverviewVO;
}
@Override
public InspectionEquipOverviewVO getInspectionEquipOverviewNew(String startDate, String endDate){
String departIds = BaseContextHandler.getDeparts();
InspectionEquipOverviewVO inspectionEquipOverviewVO = new InspectionEquipOverviewVO();
......@@ -991,9 +1001,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
* @param endDate
* @return
*/
@Override
public List<InspectionEquipIndicatorsDetailVO> getInspectionEquipOverviewDetail(String departIds, String startDate, String endDate){
// return inspectionAnalysisMapper.getInspectionEquipIndicatorsDetail( departIds, startDate, endDate);
//return null;
String sql = "select d.depart_name, d.id 'departId' , ifnull(kkk.total_count,0) 'totalInspectionEquipCount' , ifnull(kkk.yj_count,0) 'checkedInspectionEquipCount' ,ifnull(kkk.yc_count,0) 'abnormalInspectionEquipCount' ,(ifnull(kkk.yj_count,0) - ifnull(kkk.yc_count,0) ) 'normalInspectionEquipCount' , " +
" (ifnull(kkk.total_count,0) - ifnull(kkk.yj_count,0) ) 'notCheckedInspectionEquipCount' " +
" from sys_depart d ";
......@@ -1099,6 +1108,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
* @param endDate
* @return
*/
@Override
public List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrendDetail(String departIds, String startDate, String endDate){
return inspectionAnalysisMapper.getInspectionAbnormalItemsTrendDetail( departIds, startDate, endDate);
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!