From 0f08c4b07d2d3545b90adc9283b77d223f796444 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Tue, 16 Dec 2025 14:46:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=B3=E8=AF=B7=E6=8A=9A?= =?UTF-8?q?=E6=85=B0=E7=9A=84=E4=BA=BA=E5=91=98=E7=9A=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constants/enums/GenderEnum.java | 31 ++++++ .../rightsComfort/ComfortController.java | 12 +++ .../pojo/param/SupPoliceQueryParam.java | 96 +++++++++++++++++++ .../request/comfort/ComfortApplyRequest.java | 31 ++++++ .../supervision/pojo/vo/ComfortApplyVo.java | 40 ++++++++ .../supPolice/SupPoliceResourceService.java | 76 +++++++++++++++ .../supervision/service/RpcApplyService.java | 34 ++++++- 7 files changed, 316 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/constants/enums/GenderEnum.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/SupPoliceQueryParam.java create mode 100644 src/main/java/com/biutag/supervision/pojo/request/comfort/ComfortApplyRequest.java create mode 100644 src/main/java/com/biutag/supervision/pojo/vo/ComfortApplyVo.java create mode 100644 src/main/java/com/biutag/supervision/repository/supPolice/SupPoliceResourceService.java diff --git a/src/main/java/com/biutag/supervision/constants/enums/GenderEnum.java b/src/main/java/com/biutag/supervision/constants/enums/GenderEnum.java new file mode 100644 index 0000000..90542ea --- /dev/null +++ b/src/main/java/com/biutag/supervision/constants/enums/GenderEnum.java @@ -0,0 +1,31 @@ +package com.biutag.supervision.constants.enums; + +/** + * @ClassName GenderEnum + * @Description 男女枚举类 + * @Author shihao + * @Date 2025/12/16 14:36 + */ +public enum GenderEnum implements IntegerEnum { + + MALE(0, "男"), + FEMALE(1, "女"); + + private final int code; + private final String desc; + + GenderEnum(int code, String desc) { + this.code = code; + this.desc = desc; + } + + @Override + public int getCode() { + return code; + } + + @Override + public String getDesc() { + return desc; + } +} diff --git a/src/main/java/com/biutag/supervision/controller/rightsComfort/ComfortController.java b/src/main/java/com/biutag/supervision/controller/rightsComfort/ComfortController.java index 1fbbcb6..b2e690c 100644 --- a/src/main/java/com/biutag/supervision/controller/rightsComfort/ComfortController.java +++ b/src/main/java/com/biutag/supervision/controller/rightsComfort/ComfortController.java @@ -14,8 +14,11 @@ import com.biutag.supervision.pojo.dto.RpcApplyDto; import com.biutag.supervision.pojo.entity.*; import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.param.RpcApplyQueryParam; +import com.biutag.supervision.pojo.request.comfort.ComfortApplyRequest; +import com.biutag.supervision.pojo.vo.ComfortApplyVo; import com.biutag.supervision.pojo.vo.RpcApplyVo; import com.biutag.supervision.service.*; +import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -146,4 +149,13 @@ public class ComfortController { return Result.success(); } + + @Operation(description = "获取申请抚慰的申请人信息") + @PostMapping("/getPoliceInfo") + public Result getPoliceInfo(@RequestBody ComfortApplyRequest request) { + return rpcApplyService.getPoliceInfo(request); + } + + + } diff --git a/src/main/java/com/biutag/supervision/pojo/param/SupPoliceQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/SupPoliceQueryParam.java new file mode 100644 index 0000000..31de599 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/SupPoliceQueryParam.java @@ -0,0 +1,96 @@ +package com.biutag.supervision.pojo.param; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDate; +import java.util.Set; + +/** + * @ClassName SupPoliceQueryParam + * @Description 警员信息查询实体 + * @Author shihao + * @Date 2025/12/16 11:05 + */ +@Getter +@Setter +@Schema(description = "警员信息查询实体") +public class SupPoliceQueryParam { + + @Schema(description = "id") + private String id; + + @Schema(description = "id集合") + private Set ids; + + @Schema(description = "组织机构ID") + private String orgId; + + @Schema(description = "组织机构ID集合") + private Set orgIds; + + @Schema(description = "所属区域ID") + private String districtId; + + @Schema(description = "警号") + private String empNo; + + @Schema(description = "警号集合") + private Set empNos; + + @Schema(description = "姓名(模糊查询)") + private String name; + + @Schema(description = "显示名称(模糊查询)") + private String displayName; + + @Schema(description = "身份证号码(精确查询 / 回车查询)") + private String idCode; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "账号") + private String account; + + @Schema(description = "职位") + private String job; + + @Schema(description = "职位类型") + private String jobType; + + @Schema(description = "人员类型 0原始 1协警 2文员 3临时工") + private String type; + + @Schema(description = "人员状态") + private String personStatus; + + @Schema(description = "人员属性") + private String personType; + + /** + * @see com.biutag.supervision.constants.enums.GenderEnum + */ + @Schema(description = "性别") + private String gender; + + @Schema(description = "婚姻状况") + private String maritalStatus; + + @Schema(description = "是否有子女") + private Boolean haveChildren; + + @Schema(description = "学历") + private String education; + + @Schema(description = "入职日期-开始") + private LocalDate employmentDateStart; + + @Schema(description = "入职日期-结束") + private LocalDate employmentDateEnd; + + @Schema(description = "状态") + private String status; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/request/comfort/ComfortApplyRequest.java b/src/main/java/com/biutag/supervision/pojo/request/comfort/ComfortApplyRequest.java new file mode 100644 index 0000000..c080bc2 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/comfort/ComfortApplyRequest.java @@ -0,0 +1,31 @@ +package com.biutag.supervision.pojo.request.comfort; + +import cn.hutool.core.util.StrUtil; +import com.biutag.supervision.aop.ParamChecked; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +/** + * @ClassName ComfortApply + * @Description ComfortApplyRequest + * @Author shihao + * @Date 2025/12/16 10:50 + */ +@Getter +@Setter +@Schema(description = "维权申请人请求实体") +public class ComfortApplyRequest implements ParamChecked { + + @Schema(description = "身份证号") + private String idCode; + + @Schema(description = "警号") + private String empNo; + @Override + public void check() { + if (StrUtil.isAllBlank(idCode, empNo)){ + throw new RuntimeException("身份证和警号不能同时为空!!"); + } + } +} diff --git a/src/main/java/com/biutag/supervision/pojo/vo/ComfortApplyVo.java b/src/main/java/com/biutag/supervision/pojo/vo/ComfortApplyVo.java new file mode 100644 index 0000000..06acb6f --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/vo/ComfortApplyVo.java @@ -0,0 +1,40 @@ +package com.biutag.supervision.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +/** + * @ClassName ComfortApplyVo + * @Description 维权申请人返回实体 + * @Author shihao + * @Date 2025/12/16 10:56 + */ +@Getter +@Setter +@Schema(description = "维权申请人返回实体") +public class ComfortApplyVo { + + @Schema(description = "姓名(模糊查询)") + private String name; + + /** + * @see com.biutag.supervision.constants.enums.GenderEnum + */ + @Schema(description = "性别") + private String gender; + + @Schema(description = "身份证号码") + private String idCode; + + @Schema(description = "组织机构ID") + private String orgId; + + @Schema(description = "警号") + private String empNo; + + @Schema(description = "职位:正职 副职") + private String position; + + +} diff --git a/src/main/java/com/biutag/supervision/repository/supPolice/SupPoliceResourceService.java b/src/main/java/com/biutag/supervision/repository/supPolice/SupPoliceResourceService.java new file mode 100644 index 0000000..60b85d3 --- /dev/null +++ b/src/main/java/com/biutag/supervision/repository/supPolice/SupPoliceResourceService.java @@ -0,0 +1,76 @@ +package com.biutag.supervision.repository.supPolice; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervision.mapper.SupPoliceMapper; +import com.biutag.supervision.pojo.entity.SupPolice; +import com.biutag.supervision.pojo.param.SupPoliceQueryParam; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @ClassName SupPoliceResourceService + * @Description SupPoliceResourceService + * @Author shihao + * @Date 2025/12/16 11:00 + */ +@Service +public class SupPoliceResourceService { + + @Resource + private SupPoliceMapper supPoliceMapper; + + public Map query(SupPoliceQueryParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotBlank(param.getId()), SupPolice::getId, param.getId()); + queryWrapper.in(CollUtil.isNotEmpty(param.getIds()), SupPolice::getId, param.getIds()); + queryWrapper.eq(StrUtil.isNotBlank(param.getOrgId()), SupPolice::getOrgId, param.getOrgId()); + queryWrapper.in(CollUtil.isNotEmpty(param.getOrgIds()), SupPolice::getOrgId, param.getOrgIds()); + queryWrapper.eq(StrUtil.isNotBlank(param.getDistrictId()), SupPolice::getDistrictId, param.getDistrictId()); + // 警号 精确/集合 + queryWrapper.eq(StrUtil.isNotBlank(param.getEmpNo()), SupPolice::getEmpNo, param.getEmpNo()); + queryWrapper.in(CollUtil.isNotEmpty(param.getEmpNos()), SupPolice::getEmpNo, param.getEmpNos()); + + // 身份证 / 手机 / 账号 + queryWrapper.eq(StrUtil.isNotBlank(param.getIdCode()), SupPolice::getIdCode, param.getIdCode()); + queryWrapper.eq(StrUtil.isNotBlank(param.getMobile()), SupPolice::getMobile, param.getMobile()); + queryWrapper.eq(StrUtil.isNotBlank(param.getAccount()), SupPolice::getAccount, param.getAccount()); + + // 模糊:姓名 / 显示名称 + queryWrapper.like(StrUtil.isNotBlank(param.getName()), SupPolice::getName, param.getName()); + queryWrapper.like(StrUtil.isNotBlank(param.getDisplayName()), SupPolice::getDisplayName, param.getDisplayName()); + + // 枚举/状态类字段 + queryWrapper.eq(StrUtil.isNotBlank(param.getJob()), SupPolice::getJob, param.getJob()); + queryWrapper.eq(StrUtil.isNotBlank(param.getJobType()), SupPolice::getJobType, param.getJobType()); + queryWrapper.eq(StrUtil.isNotBlank(param.getType()), SupPolice::getType, param.getType()); + queryWrapper.eq(StrUtil.isNotBlank(param.getPersonStatus()), SupPolice::getPersonStatus, param.getPersonStatus()); + queryWrapper.eq(StrUtil.isNotBlank(param.getPersonType()), SupPolice::getPersonType, param.getPersonType()); + queryWrapper.eq(StrUtil.isNotBlank(param.getGender()), SupPolice::getGender, param.getGender()); + queryWrapper.eq(StrUtil.isNotBlank(param.getMaritalStatus()), SupPolice::getMaritalStatus, param.getMaritalStatus()); + queryWrapper.eq(param.getHaveChildren() != null, SupPolice::getHaveChildren, param.getHaveChildren()); + queryWrapper.eq(StrUtil.isNotBlank(param.getEducation()), SupPolice::getEducation, param.getEducation()); + queryWrapper.eq(StrUtil.isNotBlank(param.getStatus()), SupPolice::getStatus, param.getStatus()); + + // 入职日期区间 + queryWrapper.ge(param.getEmploymentDateStart() != null, SupPolice::getEmploymentDate, param.getEmploymentDateStart()); + queryWrapper.le(param.getEmploymentDateEnd() != null, SupPolice::getEmploymentDate, param.getEmploymentDateEnd()); + + // 排序(你也可以换成 sortId / empNo) + queryWrapper.orderByAsc(SupPolice::getSortId).orderByAsc(SupPolice::getEmpNo); + + List list = supPoliceMapper.selectList(queryWrapper); + if (CollUtil.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(SupPolice::getEmpNo, Function.identity(), (s1, s2) -> s1)); + } + +} diff --git a/src/main/java/com/biutag/supervision/service/RpcApplyService.java b/src/main/java/com/biutag/supervision/service/RpcApplyService.java index fd4a113..b9f08ae 100644 --- a/src/main/java/com/biutag/supervision/service/RpcApplyService.java +++ b/src/main/java/com/biutag/supervision/service/RpcApplyService.java @@ -1,8 +1,11 @@ package com.biutag.supervision.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -14,12 +17,18 @@ import com.biutag.supervision.common.UserContextHolder; import com.biutag.supervision.constants.AppConstants; import com.biutag.supervision.constants.enums.*; import com.biutag.supervision.mapper.RpcApplyMapper; +import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.dto.RpcApplyDto; import com.biutag.supervision.pojo.entity.*; import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.param.RpcApplyQueryParam; +import com.biutag.supervision.pojo.param.SupPoliceQueryParam; +import com.biutag.supervision.pojo.request.comfort.ComfortApplyRequest; +import com.biutag.supervision.pojo.vo.ComfortApplyVo; import com.biutag.supervision.pojo.vo.RpcApplyVo; +import com.biutag.supervision.repository.supPolice.SupPoliceResourceService; import com.biutag.supervision.util.JSON; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -28,10 +37,7 @@ import org.springframework.web.bind.annotation.RequestBody; import java.time.LocalDateTime; import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @RequiredArgsConstructor @@ -48,6 +54,9 @@ public class RpcApplyService extends ServiceImpl { private final SupDepartService departService; + @Resource + private SupPoliceResourceService supPoliceResourceService; + public Page page(RpcApplyQueryParam queryParam, String type) { UserAuth user = UserContextHolder.getCurrentUser(); @@ -209,4 +218,21 @@ public class RpcApplyService extends ServiceImpl { public Long orgCount(Date beginTime, Date endTime, String type, String orgId) { return count(new LambdaQueryWrapper().between(RpcApply::getCrtTime, beginTime, endTime).eq(RpcApply::getSecondDepartId,orgId).eq(RpcApply::getType, type)); } + + public Result getPoliceInfo(ComfortApplyRequest request) { + SupPoliceQueryParam supPoliceQueryParam = new SupPoliceQueryParam(); + supPoliceQueryParam.setIdCode(request.getIdCode()); + supPoliceQueryParam.setEmpNo(request.getEmpNo()); + Map query = supPoliceResourceService.query(supPoliceQueryParam); + if (MapUtil.isEmpty(query)) { + return Result.failed("未找到对应警员信息"); + } + SupPolice police = query.entrySet().iterator().next().getValue(); + ComfortApplyVo comfortApplyVo = new ComfortApplyVo(); + BeanUtil.copyProperties(police, comfortApplyVo); + if (StrUtil.isBlank(comfortApplyVo.getGender())) { + comfortApplyVo.setGender(String.valueOf(IdcardUtil.getGenderByIdCard(police.getIdCode()))); + } + return Result.success(comfortApplyVo); + } }