添加功能
This commit is contained in:
@@ -129,4 +129,17 @@ public class CommonConstant {
|
||||
Tuples.of("6", "农业")
|
||||
)));
|
||||
|
||||
/**
|
||||
* 重点群体列表
|
||||
*/
|
||||
public static final List<Tuple2<String, String>> KEY_GROUP_LIST =
|
||||
Collections.unmodifiableList(new ArrayList<>(Arrays.asList(
|
||||
Tuples.of("1", "失业人员"),
|
||||
Tuples.of("2", "高校毕业生"),
|
||||
Tuples.of("3", "残疾人"),
|
||||
Tuples.of("4", "低收入家庭"),
|
||||
Tuples.of("5", "零就业家庭"),
|
||||
Tuples.of("6", "其他重点人群")
|
||||
)));
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.ruoyi.cms.controller;
|
||||
|
||||
import com.ruoyi.cms.domain.dto.KeyGroupQueryDTO;
|
||||
import com.ruoyi.cms.domain.dto.QueryParamDto;
|
||||
import com.ruoyi.cms.service.AnalysisKeyGroupServiceSituationService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -109,4 +111,25 @@ public class AnalysisKeyGroupServiceSituationController {
|
||||
public AjaxResult heatmap(@RequestBody QueryParamDto dto) {
|
||||
return AjaxResult.success(analysisKeyGroupServiceSituationService.heatmap(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询重点人群类型列表
|
||||
*
|
||||
* @return 重点人群类型列表
|
||||
*/
|
||||
@GetMapping("/keyGroupTypeList")
|
||||
public AjaxResult keyGroupTypeList() {
|
||||
return AjaxResult.success(analysisKeyGroupServiceSituationService.keyGroupTypeList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询重点群体帮扶分页列表
|
||||
*
|
||||
* @param dto 查询参数
|
||||
* @return 查询结果
|
||||
*/
|
||||
@PostMapping("/pageKeyGroup")
|
||||
public AjaxResult pageKeyGroup(@RequestBody KeyGroupQueryDTO dto) {
|
||||
return analysisKeyGroupServiceSituationService.pageKeyGroup(dto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.cms.domain.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 重点群体查询参数
|
||||
*
|
||||
* @author 马宝龙
|
||||
* @date 2026/6/26
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class KeyGroupQueryDTO extends PageDTO {
|
||||
private static final long serialVersionUID = -4339925492039700077L;
|
||||
|
||||
/**
|
||||
* 团场
|
||||
*/
|
||||
private String area;
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 重点人群类型
|
||||
*/
|
||||
private String keyGroupType;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.ruoyi.cms.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 分页参数
|
||||
*
|
||||
* @author 马宝龙
|
||||
* @date 2026/6/26
|
||||
*/
|
||||
@Data
|
||||
public class PageDTO implements Serializable {
|
||||
private static final long serialVersionUID = 2667497663931774784L;
|
||||
|
||||
/**
|
||||
* 页码
|
||||
*/
|
||||
public static final Integer PAGE_NO = 1;
|
||||
/**
|
||||
* 每页条数
|
||||
*/
|
||||
public static final Integer PAGE_SIZE = 10;
|
||||
|
||||
|
||||
@NotNull(message = "页码不能为空")
|
||||
@Min(value = 1, message = "页码最小值为 1")
|
||||
private Integer pageNo = PAGE_NO;
|
||||
|
||||
@NotNull(message = "每页条数不能为空")
|
||||
@Min(value = 1, message = "每页条数最小值为 1")
|
||||
private Integer pageSize = PAGE_SIZE;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 重点群体查询结果
|
||||
*
|
||||
* @author 马宝龙
|
||||
* @date 2026/6/25
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class KeyGroupResultVo implements Serializable {
|
||||
private static final long serialVersionUID = -370774975897655676L;
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 人员类型
|
||||
*/
|
||||
private String keyGroupType;
|
||||
/**
|
||||
* 人员类型描述
|
||||
*/
|
||||
private String keyGroupTypeDesc;
|
||||
/**
|
||||
* 服务内容
|
||||
*/
|
||||
private String serviceContent;
|
||||
/**
|
||||
* 服务时间
|
||||
*/
|
||||
private LocalDateTime serviceTime;
|
||||
/**
|
||||
* 技能等级描述
|
||||
*/
|
||||
private String skillLevelDesc;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分页结果
|
||||
*
|
||||
* @param <T> 类型
|
||||
* @author 马宝龙
|
||||
* @date 2026/6/26
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class PageVO<T> implements Serializable {
|
||||
private static final long serialVersionUID = 1292342806693154866L;
|
||||
|
||||
/**
|
||||
* 分页内容
|
||||
*/
|
||||
private List<T> list;
|
||||
/**
|
||||
* 总数
|
||||
*/
|
||||
private Long total;
|
||||
/**
|
||||
* 总页数
|
||||
*/
|
||||
private Integer totalPage;
|
||||
/**
|
||||
* 是否首页
|
||||
*/
|
||||
private Boolean isFirst;
|
||||
/**
|
||||
* 是否尾页
|
||||
*/
|
||||
private Boolean isLast;
|
||||
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
package com.ruoyi.cms.service;
|
||||
|
||||
import com.ruoyi.cms.domain.dto.KeyGroupQueryDTO;
|
||||
import com.ruoyi.cms.domain.dto.QueryParamDto;
|
||||
import com.ruoyi.cms.domain.vo.DictVo;
|
||||
import com.ruoyi.cms.domain.vo.HeatmapVo;
|
||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationHelpScoreVo;
|
||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationHelpTypeVo;
|
||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationKeyGroupScoreVo;
|
||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationOverviewVo;
|
||||
import com.ruoyi.cms.domain.vo.QueryResultVo;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -82,4 +89,19 @@ public interface AnalysisKeyGroupServiceSituationService {
|
||||
* @return 热力图列表
|
||||
*/
|
||||
List<HeatmapVo> heatmap(QueryParamDto dto);
|
||||
|
||||
/**
|
||||
* 查询重点人群类型列表
|
||||
*
|
||||
* @return 重点人群类型列表
|
||||
*/
|
||||
List<DictVo> keyGroupTypeList();
|
||||
|
||||
/**
|
||||
* 查询重点群体帮扶分页列表
|
||||
*
|
||||
* @param dto 查询参数
|
||||
* @return 查询结果
|
||||
*/
|
||||
AjaxResult pageKeyGroup(@RequestBody KeyGroupQueryDTO dto);
|
||||
}
|
||||
@@ -1,14 +1,20 @@
|
||||
package com.ruoyi.cms.service.impl;
|
||||
|
||||
import com.ruoyi.cms.constant.CommonConstant;
|
||||
import com.ruoyi.cms.domain.dto.KeyGroupQueryDTO;
|
||||
import com.ruoyi.cms.domain.dto.QueryParamDto;
|
||||
import com.ruoyi.cms.domain.vo.DictVo;
|
||||
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.KeyGroupServiceSituationHelpTypeVo;
|
||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationKeyGroupScoreVo;
|
||||
import com.ruoyi.cms.domain.vo.KeyGroupServiceSituationOverviewVo;
|
||||
import com.ruoyi.cms.domain.vo.QueryResultVo;
|
||||
import com.ruoyi.cms.service.AnalysisKeyGroupServiceSituationService;
|
||||
import com.ruoyi.cms.util.PageUtil;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -17,6 +23,7 @@ import reactor.util.function.Tuples;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -208,4 +215,108 @@ public class AnalysisKeyGroupServiceSituationServiceImpl implements AnalysisKeyG
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DictVo> keyGroupTypeList() {
|
||||
|
||||
List<DictVo> list = new ArrayList<>();
|
||||
for (Tuple2<String, String> industry : CommonConstant.KEY_GROUP_LIST) {
|
||||
list.add(DictVo.builder().code(industry.getT1()).desc(industry.getT2()).build());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult pageKeyGroup(KeyGroupQueryDTO dto) {
|
||||
// 查询总数
|
||||
long count = 8L;
|
||||
if (0 == count) {
|
||||
return AjaxResult.success(PageUtil.<KeyGroupResultVo>empty());
|
||||
}
|
||||
// 查询分页内容
|
||||
List<KeyGroupResultVo> voList = new ArrayList<>();
|
||||
KeyGroupResultVo vo = KeyGroupResultVo.builder()
|
||||
.id(1L)
|
||||
.name("张三")
|
||||
.keyGroupType("1")
|
||||
.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()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.ruoyi.cms.util;
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.dto.PageDTO;
|
||||
import com.ruoyi.cms.domain.vo.PageVO;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 分页工具类
|
||||
*
|
||||
* @author 马宝龙
|
||||
* @date 2026/6/26
|
||||
*/
|
||||
public class PageUtil {
|
||||
private PageUtil() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回空分页对象
|
||||
*
|
||||
* @param <T> 类型
|
||||
* @return 空分页
|
||||
*/
|
||||
public static <T> PageVO<T> empty() {
|
||||
return PageVO.<T>builder()
|
||||
.list(new ArrayList<>())
|
||||
.total(0L)
|
||||
.totalPage(0)
|
||||
.isFirst(true)
|
||||
.isLast(true)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化分页
|
||||
*
|
||||
* @param list 内容列表
|
||||
* @param total 总数
|
||||
* @param pageNo 页码
|
||||
* @param pageSize 每页数量
|
||||
* @param <T> 类型
|
||||
* @return 分页
|
||||
*/
|
||||
public static <T> PageVO<T> init(List<T> list, Long total, Integer pageNo, Integer pageSize) {
|
||||
|
||||
total = Optional.ofNullable(total).orElse(0L);
|
||||
pageNo = Optional.ofNullable(pageNo).orElse(PageDTO.PAGE_NO);
|
||||
pageSize = Optional.ofNullable(pageSize).orElse(PageDTO.PAGE_SIZE);
|
||||
|
||||
int totalPage = (int) (total / pageSize);
|
||||
int morePage = (int) (total % pageSize);
|
||||
if (morePage > 0) {
|
||||
totalPage += 1;
|
||||
}
|
||||
|
||||
return PageVO.<T>builder()
|
||||
.list(list)
|
||||
.total(total)
|
||||
.totalPage(totalPage)
|
||||
.isFirst(pageNo.equals(PageDTO.PAGE_NO))
|
||||
.isLast(pageNo.equals(totalPage))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user