Compare commits

...

3 Commits

  1. 5
      src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java
  2. 19
      src/main/java/com/biutag/supervision/controller/rightsComfort/RightsController.java
  3. 256
      src/main/java/com/biutag/supervision/job/Job.java
  4. 7
      src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java
  5. 2
      src/main/java/com/biutag/supervision/pojo/vo/RpcApplyVo.java
  6. 34
      src/main/java/com/biutag/supervision/service/RpcApplyService.java
  7. 15
      src/main/resources/mapper/RpcApplyMapper.xml

5
src/main/java/com/biutag/supervision/controller/datav/DataVRightsComfortController.java

@ -211,9 +211,12 @@ public class DataVRightsComfortController {
List<RpcApply> list = rpcApplyService.list(new LambdaQueryWrapper<RpcApply>()
.between(RpcApply::getCrtTime, beginTime, finalEndTime)
.eq(RpcApply::getSecondDepartId,departId)
.eq(RpcApply::getVerified,"2")
.eq(RpcApply::getType, RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue()));
Set<String> caseNumbers = list.stream().map(RpcApply::getCaseNumber).collect(Collectors.toSet());
Set<String> caseNumbers = list.stream()
.map(RpcApply::getCaseNumber)
.collect(Collectors.toSet());
// 维权案件总数
re.setRightsNumber(caseNumbers.size());

19
src/main/java/com/biutag/supervision/controller/rightsComfort/RightsController.java

@ -3,13 +3,13 @@ package com.biutag.supervision.controller.rightsComfort;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.RpcApplyTypeEnum;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.RpcApplyPerson;
import com.biutag.supervision.pojo.param.RpcApplyQueryParam;
import com.biutag.supervision.pojo.vo.RpcApplyVo;
import com.biutag.supervision.service.RpcApplyPersonService;
import com.biutag.supervision.service.RpcApplyService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* @author wxc
@ -22,8 +22,19 @@ public class RightsController {
private final RpcApplyService rpcApplyService;
private final RpcApplyPersonService rpcApplyPersonService;
@GetMapping
public Result<Page<RpcApplyVo>> list(RpcApplyQueryParam queryParam) {
return Result.success(rpcApplyService.page(queryParam, RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue()));
// return Result.success(rpcApplyService.page(queryParam, RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue()));
return Result.success(rpcApplyService.pageData(queryParam,RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue()));
}
@DeleteMapping("{id}")
public Result<Void> del(@PathVariable String id) {
rpcApplyPersonService.removeById(id);
return Result.success();
}
}

256
src/main/java/com/biutag/supervision/job/Job.java

@ -127,263 +127,19 @@ public class Job {
// 每天一次 23:30:00
//todo 维权信息
// @Scheduled(cron = "0 30 23 * * ?")
public void testFun() throws ParseException {
@Scheduled(cron = "0 30 23 * * ?")
public void rights() throws ParseException {
log.info("rights--------------------");
log.info("维权信息抓取中---------------------");
// 维权
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = sdf.parse("2025-01-01 00:00:00");
Date endTime = sdf.parse("2025-12-30 00:00:00");
List<DwdAsjZfbaShrxx> shrxxList = dwdAsjZfbaShrxxService.list(startTime,endTime);
if(CollectionUtil.isEmpty(shrxxList)){
log.info("时间范围内无受害人信息");
return;
}
log.info("数据:{}条", shrxxList.size());
// Date startTime = sdf.parse("2025-01-01 00:00:00");
// Date endTime = sdf.parse("2025-12-30 00:00:00");
List<String> zjList = shrxxList.stream().map(s->s.getZj()).toList();
List<TXsshrxxb> tXsshrxxbs = tXsshrxxbService.getListAllByZjs(zjList);
if(CollectionUtil.isEmpty(tXsshrxxbs)){
log.info("未找到受伤民辅警");
return;
}
log.info("受害人信息数量数据:{}条", tXsshrxxbs.size());
Map<String,DwdAsjZfbaAjjbxx> ajjbxxMap = new HashMap<>();
tXsshrxxbs.forEach(item -> {
RpcApplySupervise rpcApply = new RpcApplySupervise();
RpcApply apply=new RpcApply();
apply.setRpcId(item.getZj());
apply.setNumber(item.getAjbh());
apply.setType("1");
rpcApply.setRpcId(item.getZj());
rpcApply.setCrtTime(LocalDateTime.now());
rpcApply.setUptTime(LocalDateTime.now());
// 姓名
rpcApply.setApplicantEmpName(item.getXm());
// 受害日期
if (Objects.nonNull(item.getShrq())) {
rpcApply.setHappenTime(item.getShrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
apply.setHappenTime(item.getShrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
}
// 案件编号
rpcApply.setCaseNumber(item.getAjbh());
// 受害人警号
SupPolice police = policeService.getByIdCode(item.getGmsfhm());
if (Objects.nonNull(police)) {
// 警号
apply.setApplicantEmpNo(police.getEmpNo());
rpcApply.setApplicantEmpNo(police.getEmpNo());
RpcPerson person = new RpcPerson();
person.setRpcId(item.getZj());
if(ObjectUtil.isNotEmpty(police)){
person.setJob(police.getJobType());
Date startTime = Date.from(LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0).atZone(ZoneId.systemDefault()).toInstant());
Date endTime = Date.from(LocalDateTime.now().minusDays(1).withHour(23).withMinute(59).withSecond(59).atZone(ZoneId.systemDefault()).toInstant());
}
person.setEmpNo(rpcApply.getApplicantEmpNo());
person.setName(police.getName());
apply.setApplicantEmpName(police.getName());
if(!police.getOrgId().isEmpty()){
person.setDepartId(police.getOrgId());
apply.setDepartId(police.getOrgId());
SupDepart departs = departService.getOne(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getId,police.getOrgId()));
person.setDepartName(departs.getShortName());
apply.setDepartName(departs.getShortName());
}
rpcPersonService.saveOrUpdate(person);
}
if (StrUtil.isNotBlank(item.getAjbh())) {
DwdAsjZfbaAjjbxx ajjbxx = new DwdAsjZfbaAjjbxx();
if(ajjbxxMap != null && ajjbxxMap.containsKey(item.getAjbh())){
ajjbxx = ajjbxxMap.get(item.getAjbh());
}else{
ajjbxx = dwdAsjZfbaAjjbxxMapper.selectByAjbh(item.getAjbh());
ajjbxxMap.put(item.getAjbh(),ajjbxx);
}
//案件信息
apply.setFactReason(ajjbxx.getJyaq());
apply.setIncidentLinkName(ajjbxx.getAjlbmc());
//获取办案人id
if(StrUtil.isNotEmpty(ajjbxx.getBar1id())){
DwdRyZfbaBaryxx dwdRyZfbaBaryxx = dwdRyZfbaBaryxxService.selectDataById(ajjbxx.getBar1id());
if(ObjectUtil.isNotEmpty(dwdRyZfbaBaryxx)){
SupPolice policeData = policeService.getByIdCode(dwdRyZfbaBaryxx.getZjhm());
if(ObjectUtil.isNotEmpty(policeData)){
rpcApply.setInputEmpNo(policeData.getEmpNo());
}else{
log.info("身份证:"+dwdRyZfbaBaryxx.getZjhm()+"未找到");
}
}
log.info("没有相关案件基本信息");
}
if(StrUtil.isNotBlank(ajjbxx.getAjmc())){
rpcApply.setCaseName(ajjbxx.getAjmc());
}
//获取办理单位进行处理
if(StrUtil.isNotEmpty(ajjbxx.getBadwidmc())){
String unitName = ajjbxx.getBadwidmc();
log.info("单位名称:",ajjbxx.getBadwidmc());
if(!unitName.contains("长沙市公安局")){
unitName = unitName.split("湖南省")[1];
}
SupDepart supDepart=supDepartMapper.selectOne(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getName,unitName));
if(ObjectUtil.isNotEmpty(supDepart)){
rpcApply.setHandleDepartId(supDepart.getId());
rpcApply.setHandleDepartName(supDepart.getShortName());
}
//获取二级单位的信息
String statisticsGroupName = null;
final String CHANGSHA_POLICE = "长沙市公安局";
// 判断是否为非长沙市公安局
if (unitName != null && !unitName.contains(CHANGSHA_POLICE)) {
// 非长沙市公安局
String badwidmc = ajjbxx.getBadwidmc();
if (badwidmc != null && !badwidmc.isEmpty()) {
// 优化字符串处理,使用indexOf代替split以提高性能
int juIndex = badwidmc.indexOf('局');
if (juIndex > 0) {
String beforeJu = badwidmc.substring(0, juIndex);
int shengIndex = beforeJu.indexOf('省');
if (shengIndex > 0 && shengIndex < beforeJu.length() - 1) {
String afterSheng = beforeJu.substring(shengIndex + 1);
statisticsGroupName = "湖南省长沙市公安局" + afterSheng + "局";
} else {
log.info("无法分割'省'或'省'后没有有效内容: {}", beforeJu);
}
} else {
log.info("无法在{}中找到'局'字", badwidmc);
}
} else {
log.info("获取到的办案单位名称为空或null");
}
}
SupDepart groupDept= supDepartMapper.selectOne(new LambdaQueryWrapper<SupDepart>().eq(SupDepart::getName,statisticsGroupName));
if(ObjectUtil.isNotEmpty(groupDept)){
rpcApply.setSecondDepartId(groupDept.getId());
}
}
log.info("单位信息处理完毕");
// 案件信息
rpcApply.setFactReason(ajjbxx.getJyaq());
if ("刑事".equals(ajjbxx.getAjbzmc())) {
rpcApply.setInfringerHandle("刑事追究");
rpcApply.setCaseType("1");
apply.setInfringerHandle("刑事追究");
}
if ("行政".equals(ajjbxx.getAjbzmc())) {
rpcApply.setInfringerHandle("行政处罚");
rpcApply.setCaseType("2");
apply.setInfringerHandle("行政处罚");
}
rpcApply.setCaseCategory(ajjbxx.getAjlbmc());
}
// 申请类型
rpcApply.setType(RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue());
// 已办结
rpcApply.setRpcStatus(ComfortStatus.completed.name());
// 数据来源
rpcApply.setSource("gbase");
rpcApplySuperviseService.saveOrUpdate(rpcApply);
//受害人列表
rpcApplyPersonService.remove(new LambdaQueryWrapper<RpcApplyPerson>().eq(RpcApplyPerson::getRpcId,item.getZj()));
RpcApplyPerson rpcApplyPerson= new RpcApplyPerson();
rpcApplyPerson.setRpcId(item.getZj());
rpcApplyPerson.setType(RpcApplyTypeEnum.RIGHTS_PROTECTION.getValue());
//受伤程度屏蔽
// if(StrUtil.isNotBlank(item.getShcdmc())){
// rpcApplyPerson.setInjurySeverity(item.getShcdmc());
// }
rpcApplyPerson.setCreatTime(LocalDateTime.now());
rpcApplyPerson.setUdpTime(LocalDateTime.now());
rpcApplyPerson.setId(IdUtil.fastSimpleUUID());
//身份证
rpcApplyPerson.setIdCode(item.getGmsfhm());
//受到侵权形式
// rpcApplyPerson.setFormsOfTort(item.getShxsmc());
rpcApplyPerson.setEmpName(item.getXm());
if(StrUtil.isNotEmpty(item.getXbmc())){
rpcApplyPerson.setGender("1".equals(item.getXbmc())?"男":"女");
}
if(Objects.nonNull(police)){
rpcApply.setApplicantEmpNo(police.getEmpNo());
}
rpcApplyPerson.setRpcId(item.getZj());
//警员身份
if(ObjectUtil.isNotEmpty(police)){
rpcApplyPerson.setEmpType(police.getJobType());
}
rpcApplyPerson.setEmpNo(rpcApply.getApplicantEmpNo());
//存储受害人信息
rpcApplyPersonService.saveOrUpdate(rpcApplyPerson);
//存储犯人信息
List<DwdAsjZfbaWfrwfxx> wfrwfxxes = dwdAsjZfbaWfrwfxxMapper.selectList(new LambdaQueryWrapper<DwdAsjZfbaWfrwfxx>().eq(DwdAsjZfbaWfrwfxx::getAjbh,item.getAjbh()));
if (ArrayUtil.isNotEmpty(wfrwfxxes)){
String result = wfrwfxxes.stream()
.filter(obj -> obj.getXm() != null && !obj.getXm().isEmpty())
.map(DwdAsjZfbaWfrwfxx::getXm)
.collect(Collectors.joining("、"));
String clfss = wfrwfxxes.stream()
.filter(obj -> obj.getClfs() != null && !obj.getClfs().isEmpty())
.map(DwdAsjZfbaWfrwfxx::getClfs)
.collect(Collectors.joining(";"));
apply.setInfringerName(result);
apply.setInfringerHandle(clfss);
wfrwfxxes.forEach(x->{
rpcInfringerResultService.remove(new LambdaQueryWrapper<RpcInfringerResult>().eq(RpcInfringerResult::getRpcId,item.getZj()));
RpcInfringerResult rpcInfringerResult =new RpcInfringerResult();
rpcInfringerResult.setId(IdUtil.fastSimpleUUID());
rpcInfringerResult.setRpcId(item.getZj());
rpcInfringerResult.setTortName(x.getXm());
rpcInfringerResult.setDefendHandleWayName(x.getClfs());
//身份证
rpcInfringerResult.setIdCode(x.getZjhm());
//性别
if(StrUtil.isNotEmpty(x.getXbmc())){
rpcInfringerResult.setGender( x.getXbmc().split("性")[0]);
}
//保存犯人信息
rpcInfringerResultService.saveOrUpdate(rpcInfringerResult);
});
}
rpcApplyService.saveOrUpdate(apply);
});
log.info("录入完成-------------");
}
//todo 维权信息
public void rights() throws ParseException {
log.info("rights--------------------");
log.info("维权信息抓取中---------------------");
// 维权
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = sdf.parse("2025-01-01 00:00:00");
Date endTime = sdf.parse("2025-12-30 00:00:00");
List<DwdAsjZfbaShrxx> shrxxList = dwdAsjZfbaShrxxService.list(startTime,endTime);
if(CollectionUtil.isEmpty(shrxxList)){
log.info("时间范围内无受害人信息");

7
src/main/java/com/biutag/supervision/mapper/RpcApplyMapper.java

@ -216,6 +216,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
"HAVING `name` is NOT NULL ")
List<EchartsVo> getSubOneIncidentOrg(Date beginTime, Date endTime, Integer departId);
Page<RpcApplyVo> queryRightsPage(@Param("page") Page<RpcApply> page, @Param(Constants.WRAPPER) QueryWrapper<RpcApply> queryWrapper);
Page<RpcApplyVo> queryPage(@Param("page") Page<RpcApply> page, @Param(Constants.WRAPPER) QueryWrapper<RpcApply> queryWrapper);
@Select("select max(number_index) from rpc_apply where year = #{year}")
@ -244,7 +245,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
* */
@Select(" select sdp.short_name as label,COUNT(*) as value from rpc_apply ra " +
" LEFT JOIN sup_depart sdp on ra.second_depart_id = sdp.id " +
" WHERE sdp.statistics_group_id = #{departGroupId} and ra.type =1 " +
" WHERE sdp.statistics_group_id = #{departGroupId} and ra.type =1 and ra.verified= '2' " +
" and ra.crt_time BETWEEN #{beginTime} and #{endTime} " +
" GROUP BY sdp.short_name order by value desc ")
List<BarItem> selectProtectRightsBarList(Date beginTime, Date endTime, Integer departGroupId);
@ -257,7 +258,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
@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.type =1 and sdp.statistics_group_id = #{departGroupId} and ra.verified= '2' " +
" and ra.crt_time BETWEEN #{beginTime} AND #{endTime} " +
" GROUP BY sdp.short_name order by value desc")
List<BarItem> selectSubPcsProtectRightsBarList(Date beginTime, Date endTime, Integer departId, Integer departGroupId);
@ -269,7 +270,7 @@ public interface RpcApplyMapper extends BaseMapper<RpcApply> {
" 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.crt_time BETWEEN #{beginTime} AND #{endTime} and ra.verified= '2' " +
" GROUP BY sdp.short_name order by value desc")
List<BarItem> selectSubDdProtectRightsBarList(Date beginTime, Date endTime, Integer departId, Integer departGroupId);

2
src/main/java/com/biutag/supervision/pojo/vo/RpcApplyVo.java

@ -16,6 +16,8 @@ import java.time.LocalDateTime;
@Getter
public class RpcApplyVo {
private String personId;
private String rpcId;
private String number;

34
src/main/java/com/biutag/supervision/service/RpcApplyService.java

@ -82,6 +82,40 @@ public class RpcApplyService extends ServiceImpl<RpcApplyMapper, RpcApply> {
return baseMapper.queryPage(Page.of(queryParam.getCurrent(), queryParam.getSize()), queryWrapper);
}
public Page<RpcApplyVo> pageData(RpcApplyQueryParam queryParam,String type){
UserAuth user = UserContextHolder.getCurrentUser();
QueryWrapper<RpcApply> queryWrapper = new QueryWrapper<>();
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType())) {
List<RpcRightPerson> rightPeoples = rpcRightPersonService.list(user.getUserName());
if (rightPeoples.isEmpty()) {
return new Page<RpcApplyVo>().setTotal(0).setRecords(new ArrayList<>());
}
// 是否是市局维权专干
if (rightPeoples.stream().noneMatch(item -> "1".equals(item.getCouncil()))) {
Set<String> departIds = rightPeoples.stream().map(RpcRightPerson::getDepartId).collect(Collectors.toSet());
List<String> childrenIds = departService.getAllNodeIds(departIds);
queryWrapper.in("a.handle_depart_id", childrenIds);
}
}
queryWrapper.like(StrUtil.isNotBlank(queryParam.getApplicantEmpName()), "a.applicant_emp_name", queryParam.getApplicantEmpName())
.eq(StrUtil.isNotBlank(queryParam.getDepartId()), "a.depart_id", queryParam.getDepartId())
.eq("a.type", type)
.eq(StrUtil.isNotBlank(queryParam.getRpcStatus()), "a.rpc_status", queryParam.getRpcStatus())
.orderByDesc("a.crt_time");
if (queryParam.getApplyDate() != null && queryParam.getApplyDate().size() == 2) {
queryWrapper.between("a.apply_date", queryParam.getApplyDate().get(0), queryParam.getApplyDate().get(1));
}
if (queryParam.getHappenTime() != null && queryParam.getHappenTime().size() == 2) {
queryWrapper.between("a.happen_time", queryParam.getHappenTime().get(0), queryParam.getHappenTime().get(1));
}
if(StrUtil.isNotBlank(queryParam.getCode())){
queryWrapper.eq("a.verified","2");
}
return baseMapper.queryRightsPage(Page.of(queryParam.getCurrent(), queryParam.getSize()), queryWrapper);
}
public Integer getNewNumberIndex(Integer year) {
return NumberUtil.nullToZero(baseMapper.selectMaxNuberIndex(year)) + 1;
}

15
src/main/resources/mapper/RpcApplyMapper.xml

@ -13,4 +13,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
${ew.getCustomSqlSegment}
</select>
<select id="queryRightsPage" resultType="com.biutag.supervision.pojo.vo.RpcApplyVo">
select
rap.emp_name as applicantEmpName,
rap.emp_no as applicantEmpNo,
a.happen_time as happentime,
a.depart_name as departName,
a.case_number as caseNumber,
a.fact_reason as factReason,
rap.id as personId,
a.rpc_status as rpcStatus,
a.rpc_id as rpcId
from rpc_apply_person rap
LEFT JOIN rpc_apply a on rap.rpc_id = a.rpc_id
${ew.getCustomSqlSegment}
</select>
</mapper>

Loading…
Cancel
Save