添加功能
This commit is contained in:
@@ -1,11 +1,15 @@
|
|||||||
package com.ruoyi.cms.mapper;
|
package com.ruoyi.cms.mapper;
|
||||||
|
|
||||||
|
import com.ruoyi.cms.domain.dto.KeyGroupQueryDTO;
|
||||||
import com.ruoyi.cms.domain.dto.QueryParamDto;
|
import com.ruoyi.cms.domain.dto.QueryParamDto;
|
||||||
|
import com.ruoyi.cms.domain.vo.HeatmapVo;
|
||||||
|
import com.ruoyi.cms.domain.vo.KeyGroupResultVo;
|
||||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationHelpScoreVo;
|
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationHelpScoreVo;
|
||||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationHelpTypeVo;
|
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationHelpTypeVo;
|
||||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationKeyGroupScoreVo;
|
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationKeyGroupScoreVo;
|
||||||
import com.ruoyi.cms.domain.vo.QueryResultVo;
|
import com.ruoyi.cms.domain.vo.QueryResultVo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,6 +44,22 @@ public interface ThemeAssistRecordMapper {
|
|||||||
*/
|
*/
|
||||||
Long queryEmploymentCount(QueryParamDto dto);
|
Long queryEmploymentCount(QueryParamDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询整体满意度
|
||||||
|
*
|
||||||
|
* @param dto 查询参数
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
BigDecimal queryOverallSatisfaction(QueryParamDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询问题与建议
|
||||||
|
*
|
||||||
|
* @param dto 查询参数
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
QueryResultVo queryProblem(QueryParamDto dto);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按人员类型分组
|
* 按人员类型分组
|
||||||
@@ -60,6 +80,7 @@ public interface ThemeAssistRecordMapper {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 帮扶成效评估 - 年度
|
* 帮扶成效评估 - 年度
|
||||||
|
*
|
||||||
* @param dto 查询参数
|
* @param dto 查询参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -68,6 +89,7 @@ public interface ThemeAssistRecordMapper {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 帮扶成效评估 - 季度
|
* 帮扶成效评估 - 季度
|
||||||
|
*
|
||||||
* @param dto 查询参数
|
* @param dto 查询参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -76,6 +98,7 @@ public interface ThemeAssistRecordMapper {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 帮扶成效评估 - 月度
|
* 帮扶成效评估 - 月度
|
||||||
|
*
|
||||||
* @param dto 查询参数
|
* @param dto 查询参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -104,4 +127,27 @@ public interface ThemeAssistRecordMapper {
|
|||||||
* @return 结果列表
|
* @return 结果列表
|
||||||
*/
|
*/
|
||||||
List<QueryResultVo> questionAndSuggestion(QueryParamDto dto);
|
List<QueryResultVo> questionAndSuggestion(QueryParamDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 热力图
|
||||||
|
*
|
||||||
|
* @param dto 查询参数
|
||||||
|
* @return 热力图列表
|
||||||
|
*/
|
||||||
|
List<HeatmapVo> heatmap(QueryParamDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数量
|
||||||
|
*
|
||||||
|
* @param dto 查询参数
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
Long count(KeyGroupQueryDTO dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询列表
|
||||||
|
* @param dto 查询参数
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
List<KeyGroupResultVo> list(KeyGroupQueryDTO dto);
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@ public class AnalysisExportServiceImpl implements AnalysisExportService {
|
|||||||
break;
|
break;
|
||||||
// 智慧就业大数据分析展示系统-重点人群跟踪服务情况分析
|
// 智慧就业大数据分析展示系统-重点人群跟踪服务情况分析
|
||||||
case WISDOM_EMPLOYMENT_KEY_GROUP_SERVICE_SITUATION:
|
case WISDOM_EMPLOYMENT_KEY_GROUP_SERVICE_SITUATION:
|
||||||
test(response, dto);
|
exportWisdomKeyGroupServiceSituation(response, dto);
|
||||||
break;
|
break;
|
||||||
// 智慧就业大数据分析展示系统-劳动力就业失业数据分析
|
// 智慧就业大数据分析展示系统-劳动力就业失业数据分析
|
||||||
case WISDOM_EMPLOYMENT_LABOR_FORCE_EMPLOYMENT:
|
case WISDOM_EMPLOYMENT_LABOR_FORCE_EMPLOYMENT:
|
||||||
@@ -2452,7 +2452,197 @@ public class AnalysisExportServiceImpl implements AnalysisExportService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出 重点人群跟踪服务情况分析
|
||||||
|
*
|
||||||
|
* @param response 响应
|
||||||
|
* @param dto 查询参数
|
||||||
|
* @throws IOException 异常
|
||||||
|
*/
|
||||||
|
private void exportWisdomKeyGroupServiceSituation(HttpServletResponse response, QueryParamDto dto) throws IOException {
|
||||||
|
|
||||||
|
MultiSheetExcelUtil multiSheetExcelUtil = new MultiSheetExcelUtil();
|
||||||
|
|
||||||
|
String exportTime = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||||
|
|
||||||
|
// 数据总览
|
||||||
|
List<ExcelRow> basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("导出时间", exportTime));
|
||||||
|
basicExportList.add(new ExcelRow("数据总览"));
|
||||||
|
basicExportList.add(new ExcelRow("指标名称(单位)", "指标值", "较上期变化(%)"));
|
||||||
|
QueryParamDto newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
KeyGroupServiceSituationOverviewVo overview =
|
||||||
|
analysisKeyGroupServiceSituationService.overview(newParam);
|
||||||
|
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"服务对象人数(人)", transform(overview.getServiceTargetCount()),
|
||||||
|
transform(overview.getServiceTargetCountMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"服务需求人数(人)", transform(overview.getServiceDemandCount()),
|
||||||
|
transform(overview.getServiceDemandCountMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"实际服务人数(人)", transform(overview.getActualServiceCount()),
|
||||||
|
transform(overview.getActualServiceCountMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"实际服务人次(人次)", transform(overview.getActualServiceTimes()),
|
||||||
|
transform(overview.getActualServiceTimesMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"服务覆盖率(%)", transform(overview.getServiceCoverageRate()),
|
||||||
|
transform(overview.getServiceCoverageRateMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"帮扶后就业率(%)", transform(overview.getAfterHelpEmploymentRate()),
|
||||||
|
transform(overview.getAfterHelpEmploymentRateMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"整体满意度(分)", transform(overview.getOverallSatisfaction()),
|
||||||
|
transform(overview.getOverallSatisfactionMom())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"主要问题提及(次)", transform(overview.getMajorProblemMentionedCount())
|
||||||
|
));
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
"主要问题类型(种)", transform(overview.getMajorProblemTypeCount())
|
||||||
|
));
|
||||||
|
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
ExcelUtil<ExcelRow> basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("数据总览");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
// 帮扶对象热力图分布
|
||||||
|
basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("帮扶对象热力图分布"));
|
||||||
|
basicExportList.add(new ExcelRow("地区", "岗位需求(人)"));
|
||||||
|
newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
List<HeatmapVo> heatmapList = analysisKeyGroupServiceSituationService.heatmap(newParam);
|
||||||
|
for (HeatmapVo heatmap : heatmapList) {
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
heatmap.getAreaName(), transform(heatmap.getCount())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("帮扶对象热力图分布");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
// 帮扶成效评估
|
||||||
|
basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("帮扶成效评估"));
|
||||||
|
basicExportList.add(new ExcelRow("时间", "就业率(%)", "收入改善(%)", "生活质量改善(%)"));
|
||||||
|
newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
List<KeyGroupServiceSituationHelpScoreVo> serviceSituationHelpScoreList =
|
||||||
|
analysisKeyGroupServiceSituationService.helpResultScore(newParam);
|
||||||
|
for (KeyGroupServiceSituationHelpScoreVo result : serviceSituationHelpScoreList) {
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
result.getDesc(), transform(result.getEmploymentRate()),transform(result.getIncomeImprovement()),
|
||||||
|
transform(result.getLifeQualityImprovement())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("帮扶成效评估");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
// 人群帮扶效果对比
|
||||||
|
basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("人群帮扶效果对比"));
|
||||||
|
basicExportList.add(new ExcelRow("人员类型", "帮扶覆盖率(%)", "就业率(%)", "收入改善(%)", "满意度(分)"));
|
||||||
|
newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
List<KeyGroupServiceSituationKeyGroupScoreVo> situationKeyGroupScoreList =
|
||||||
|
analysisKeyGroupServiceSituationService.keyGroupDifferentiation(newParam);
|
||||||
|
for (KeyGroupServiceSituationKeyGroupScoreVo result : situationKeyGroupScoreList) {
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
result.getDesc(), transform(result.getServiceCoverageRate()),transform(result.getEmploymentRate()),
|
||||||
|
transform(result.getIncomeImprovement()), transform(result.getServiceSatisfaction())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("人群帮扶效果对比");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
// 服务覆盖范围
|
||||||
|
basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("服务覆盖范围"));
|
||||||
|
basicExportList.add(new ExcelRow("人员类型", "人员总数(人)", "服务覆盖人数(人)", "覆盖率(%)"));
|
||||||
|
newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
List<QueryResultVo> resultList =
|
||||||
|
analysisKeyGroupServiceSituationService.serviceCoverage(newParam);
|
||||||
|
for (QueryResultVo result : resultList) {
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
result.getDesc(), transform(result.getCount()), transform(result.getAnotherCount()),
|
||||||
|
transform(result.getRate())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("服务覆盖范围");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
// 帮扶过程与满意度
|
||||||
|
basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("帮扶过程与满意度"));
|
||||||
|
basicExportList.add(new ExcelRow("类型", "满意度(分)"));
|
||||||
|
newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
resultList =
|
||||||
|
analysisKeyGroupServiceSituationService.helpProcessSatisfaction(newParam);
|
||||||
|
for (QueryResultVo result : resultList) {
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
result.getDesc(), transform(result.getAmount())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("帮扶过程与满意度");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
// 问题与建议
|
||||||
|
basicExportList = new ArrayList<>();
|
||||||
|
basicExportList.add(new ExcelRow("问题与建议"));
|
||||||
|
basicExportList.add(new ExcelRow("类型", "反馈分数(分)"));
|
||||||
|
newParam = new QueryParamDto();
|
||||||
|
BeanUtils.copyProperties(dto, newParam);
|
||||||
|
resultList =
|
||||||
|
analysisKeyGroupServiceSituationService.questionAndSuggestion(newParam);
|
||||||
|
for (QueryResultVo result : resultList) {
|
||||||
|
basicExportList.add(new ExcelRow(
|
||||||
|
result.getDesc(), transform(result.getAmount())
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// 创建Excel工具类并添加工作表
|
||||||
|
basicSituationExcelUtil = new ExcelUtil<>(ExcelRow.class);
|
||||||
|
basicSituationExcelUtil.setDataList(basicExportList);
|
||||||
|
basicSituationExcelUtil.setSheetName("问题与建议");
|
||||||
|
multiSheetExcelUtil.addSheet(basicSituationExcelUtil);
|
||||||
|
|
||||||
|
|
||||||
|
multiSheetExcelUtil.setFileName(dto.getExportModule().getDesc());
|
||||||
|
multiSheetExcelUtil.exportExcel(response);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出 劳动力招聘需求分析
|
* 导出 劳动力招聘需求分析
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import reactor.util.function.Tuple2;
|
import reactor.util.function.Tuple2;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -74,6 +73,11 @@ public class AnalysisKeyGroupServiceSituationServiceImpl implements AnalysisKeyG
|
|||||||
.orElse(0L);
|
.orElse(0L);
|
||||||
BigDecimal afterHelpEmploymentRate = MathUtil.calculatePercentage(actualServiceCount, employmentCount);
|
BigDecimal afterHelpEmploymentRate = MathUtil.calculatePercentage(actualServiceCount, employmentCount);
|
||||||
|
|
||||||
|
BigDecimal overallSatisfaction = themeAssistRecordMapper.queryOverallSatisfaction(dto);
|
||||||
|
|
||||||
|
QueryResultVo problem = Optional.ofNullable(themeAssistRecordMapper.queryProblem(dto))
|
||||||
|
.orElse(QueryResultVo.builder().build());
|
||||||
|
|
||||||
// 计算上一时间段数据
|
// 计算上一时间段数据
|
||||||
QueryParamDto lastDto = new QueryParamDto();
|
QueryParamDto lastDto = new QueryParamDto();
|
||||||
BeanUtils.copyProperties(dto, lastDto);
|
BeanUtils.copyProperties(dto, lastDto);
|
||||||
@@ -96,6 +100,8 @@ public class AnalysisKeyGroupServiceSituationServiceImpl implements AnalysisKeyG
|
|||||||
BigDecimal lastAfterHelpEmploymentRate = MathUtil.calculatePercentage(lastActualServiceCount,
|
BigDecimal lastAfterHelpEmploymentRate = MathUtil.calculatePercentage(lastActualServiceCount,
|
||||||
lastEmploymentCount);
|
lastEmploymentCount);
|
||||||
|
|
||||||
|
BigDecimal lastOverallSatisfaction = themeAssistRecordMapper.queryOverallSatisfaction(lastDto);
|
||||||
|
|
||||||
return KeyGroupServiceSituationOverviewVo.builder()
|
return KeyGroupServiceSituationOverviewVo.builder()
|
||||||
.serviceTargetCount(serviceTargetCount)
|
.serviceTargetCount(serviceTargetCount)
|
||||||
.serviceTargetCountMom(
|
.serviceTargetCountMom(
|
||||||
@@ -117,11 +123,11 @@ public class AnalysisKeyGroupServiceSituationServiceImpl implements AnalysisKeyG
|
|||||||
MathUtil.calculatePercentageGrowthRate(lastAfterHelpEmploymentRate, afterHelpEmploymentRate))
|
MathUtil.calculatePercentageGrowthRate(lastAfterHelpEmploymentRate, afterHelpEmploymentRate))
|
||||||
.helpFundPutCount(0L)
|
.helpFundPutCount(0L)
|
||||||
.helpFundPutCountMom(BigDecimal.valueOf(0))
|
.helpFundPutCountMom(BigDecimal.valueOf(0))
|
||||||
// todo
|
.overallSatisfaction(overallSatisfaction)
|
||||||
.overallSatisfaction(BigDecimal.valueOf(0))
|
.overallSatisfactionMom(
|
||||||
.overallSatisfactionMom(BigDecimal.valueOf(0))
|
MathUtil.calculatePercentageGrowthRate(lastOverallSatisfaction, overallSatisfaction))
|
||||||
.majorProblemMentionedCount(0L)
|
.majorProblemMentionedCount(problem.getCount())
|
||||||
.majorProblemTypeCount(0L)
|
.majorProblemTypeCount(problem.getAnotherCount())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,23 +268,12 @@ public class AnalysisKeyGroupServiceSituationServiceImpl implements AnalysisKeyG
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<HeatmapVo> heatmap(QueryParamDto dto) {
|
public List<HeatmapVo> heatmap(QueryParamDto dto) {
|
||||||
List<HeatmapVo> list = new ArrayList<>();
|
|
||||||
for (Tuple2<String, String> area : CommonConstant.AREA_LIST) {
|
ParamUtil.dealParam(dto);
|
||||||
list.add(HeatmapVo.builder()
|
List<HeatmapVo> list = themeAssistRecordMapper.heatmap(dto);
|
||||||
.areaCode(area.getT1())
|
// 计算占比
|
||||||
.areaName(area.getT2())
|
MathUtil.calculatePercentageHeatmap(list);
|
||||||
.count((long) Math.floor(Math.random() * 10000) + 1)
|
|
||||||
.build());
|
|
||||||
}
|
|
||||||
long totalCount = list.stream().mapToLong(HeatmapVo::getCount).sum();
|
|
||||||
for (HeatmapVo vo : list) {
|
|
||||||
if (totalCount > 0) {
|
|
||||||
vo.setPercentage(new BigDecimal(vo.getCount())
|
|
||||||
.divide(BigDecimal.valueOf(totalCount), 4, RoundingMode.HALF_UP)
|
|
||||||
.multiply(BigDecimal.valueOf(100))
|
|
||||||
.setScale(2, RoundingMode.HALF_UP));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,93 +291,17 @@ public class AnalysisKeyGroupServiceSituationServiceImpl implements AnalysisKeyG
|
|||||||
@Override
|
@Override
|
||||||
public AjaxResult pageKeyGroup(KeyGroupQueryDTO dto) {
|
public AjaxResult pageKeyGroup(KeyGroupQueryDTO dto) {
|
||||||
// 查询总数
|
// 查询总数
|
||||||
long count = 8L;
|
long count = themeAssistRecordMapper.count(dto);
|
||||||
if (0 == count) {
|
if (0 == count) {
|
||||||
return AjaxResult.success(PageUtil.<KeyGroupResultVo>empty());
|
return AjaxResult.success(PageUtil.<KeyGroupResultVo>empty());
|
||||||
}
|
}
|
||||||
// 查询分页内容
|
// 查询分页内容
|
||||||
List<KeyGroupResultVo> voList = new ArrayList<>();
|
List<KeyGroupResultVo> voList = themeAssistRecordMapper.list(dto);
|
||||||
KeyGroupResultVo vo = KeyGroupResultVo.builder()
|
for (KeyGroupResultVo vo : voList) {
|
||||||
.id(1L)
|
vo.setKeyGroupTypeDesc(ParamUtil.fillDictName(vo.getKeyGroupType(), "groupType"));
|
||||||
.name("张三")
|
vo.setServiceContent(ParamUtil.fillDictName(vo.getServiceContent(), "assistType"));
|
||||||
.keyGroupType("1")
|
vo.setSkillLevelDesc("");
|
||||||
.keyGroupTypeDesc("失业人员")
|
}
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(2L)
|
|
||||||
.name("李四")
|
|
||||||
.keyGroupType("2")
|
|
||||||
.keyGroupTypeDesc("高校毕业生")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(3L)
|
|
||||||
.name("王五")
|
|
||||||
.keyGroupType("3")
|
|
||||||
.keyGroupTypeDesc("残疾人")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(4L)
|
|
||||||
.name("郑六")
|
|
||||||
.keyGroupType("4")
|
|
||||||
.keyGroupTypeDesc("低收入家庭")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(5L)
|
|
||||||
.name("吕七")
|
|
||||||
.keyGroupType("5")
|
|
||||||
.keyGroupTypeDesc("零就业家庭")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(6L)
|
|
||||||
.name("陈九")
|
|
||||||
.keyGroupType("6")
|
|
||||||
.keyGroupTypeDesc("其他重点人群")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(7L)
|
|
||||||
.name("孙十")
|
|
||||||
.keyGroupType("1")
|
|
||||||
.keyGroupTypeDesc("失业人员")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
vo = KeyGroupResultVo.builder()
|
|
||||||
.id(8L)
|
|
||||||
.name("赵一")
|
|
||||||
.keyGroupType("2")
|
|
||||||
.keyGroupTypeDesc("高校毕业生")
|
|
||||||
.serviceContent("xxx")
|
|
||||||
.serviceTime(LocalDateTime.now())
|
|
||||||
.skillLevelDesc("xxx")
|
|
||||||
.build();
|
|
||||||
voList.add(vo);
|
|
||||||
|
|
||||||
return AjaxResult.success(PageUtil.init(voList, count, dto.getPageNo(), dto.getPageSize()));
|
return AjaxResult.success(PageUtil.init(voList, count, dto.getPageNo(), dto.getPageSize()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,6 +80,44 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryOverallSatisfaction"
|
||||||
|
parameterType="com.ruoyi.cms.domain.dto.QueryParamDto"
|
||||||
|
resultType="java.math.BigDecimal">
|
||||||
|
|
||||||
|
SELECT COALESCE(ROUND(AVG(satisfaction_service_whole), 2), 0)
|
||||||
|
FROM theme_assist_record
|
||||||
|
WHERE
|
||||||
|
<!-- 引入公共条件 -->
|
||||||
|
<include refid="commonConditions"/>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="queryProblem"
|
||||||
|
parameterType="com.ruoyi.cms.domain.dto.QueryParamDto"
|
||||||
|
resultType="com.ruoyi.cms.domain.vo.QueryResultVo">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
-- 五个字段分别求和后再求总和
|
||||||
|
(COALESCE(SUM(problem_service_resource), 0) +
|
||||||
|
COALESCE(SUM(problem_service_professional), 0) +
|
||||||
|
COALESCE(SUM(problem_service_way), 0) +
|
||||||
|
COALESCE(SUM(problem_service_follow), 0) +
|
||||||
|
COALESCE(SUM(problem_info_system), 0)) AS count,
|
||||||
|
|
||||||
|
-- 每个字段求和后大于0则记1,再求总和
|
||||||
|
(CASE WHEN SUM(problem_service_resource) > 0 THEN 1 ELSE 0 END +
|
||||||
|
CASE WHEN SUM(problem_service_professional) > 0 THEN 1 ELSE 0 END +
|
||||||
|
CASE WHEN SUM(problem_service_way) > 0 THEN 1 ELSE 0 END +
|
||||||
|
CASE WHEN SUM(problem_service_follow) > 0 THEN 1 ELSE 0 END +
|
||||||
|
CASE WHEN SUM(problem_info_system) > 0 THEN 1 ELSE 0 END) AS anotherCount
|
||||||
|
|
||||||
|
FROM theme_assist_record
|
||||||
|
WHERE
|
||||||
|
<!-- 引入公共条件 -->
|
||||||
|
<include refid="commonConditions"/>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="queryByGroupType"
|
<select id="queryByGroupType"
|
||||||
parameterType="com.ruoyi.cms.domain.dto.QueryParamDto"
|
parameterType="com.ruoyi.cms.domain.dto.QueryParamDto"
|
||||||
@@ -332,4 +370,72 @@
|
|||||||
GROUP BY v.problem_type;
|
GROUP BY v.problem_type;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="heatmap"
|
||||||
|
parameterType="com.ruoyi.cms.domain.dto.QueryParamDto"
|
||||||
|
resultType="com.ruoyi.cms.domain.vo.HeatmapVo">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
areaCode,
|
||||||
|
COUNT(DISTINCT AAC044) AS count
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
AAC044,
|
||||||
|
area_code AS areaCode
|
||||||
|
FROM theme_assist_record
|
||||||
|
WHERE
|
||||||
|
<!-- 引入公共条件 -->
|
||||||
|
<include refid="commonConditions"/>
|
||||||
|
) subquery
|
||||||
|
GROUP BY areaCode
|
||||||
|
ORDER BY areaCode
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="count"
|
||||||
|
parameterType="com.ruoyi.cms.domain.dto.KeyGroupQueryDTO"
|
||||||
|
resultType="java.lang.Long">
|
||||||
|
|
||||||
|
SELECT COUNT(1)
|
||||||
|
FROM theme_assist_record
|
||||||
|
|
||||||
|
<where>
|
||||||
|
<if test="area != null and area != ''">
|
||||||
|
AND area_code like '%' || #{area} || '%'
|
||||||
|
</if>
|
||||||
|
<if test="name != null and name != ''">
|
||||||
|
AND AAC003 like '%' || #{name} || '%'
|
||||||
|
</if>
|
||||||
|
<if test="keyGroupType != null and keyGroupType != ''">
|
||||||
|
AND group_type like '%' || #{keyGroupType} || '%'
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="list"
|
||||||
|
parameterType="com.ruoyi.cms.domain.dto.KeyGroupQueryDTO"
|
||||||
|
resultType="com.ruoyi.cms.domain.vo.KeyGroupResultVo">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
AAC003 AS name,
|
||||||
|
group_type AS keyGroupType,
|
||||||
|
assist_type AS serviceContent,
|
||||||
|
assist_time AS serviceTime
|
||||||
|
FROM theme_assist_record
|
||||||
|
<where>
|
||||||
|
<if test="area != null and area != ''">
|
||||||
|
AND area_code like '%' || #{area} || '%'
|
||||||
|
</if>
|
||||||
|
<if test="name != null and name != ''">
|
||||||
|
AND AAC003 like '%' || #{name} || '%'
|
||||||
|
</if>
|
||||||
|
<if test="keyGroupType != null and keyGroupType != ''">
|
||||||
|
AND group_type like '%' || #{keyGroupType} || '%'
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY assist_time DESC
|
||||||
|
LIMIT #{pageSize} OFFSET (#{pageSize})*(#{pageNo}-1);
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user