Browse Source

1、公安部信访投诉台账功能;

2、国家信访投诉台账功能;
main
wxc 11 months ago
parent
commit
a28eacc639
  1. 1
      src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java
  2. 114
      src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java
  3. 63
      src/main/java/com/biutag/supervision/controller/sensitiveperception/ScoreController.java
  4. 17
      src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java
  5. 4
      src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java
  6. 2
      src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java
  7. 42
      src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDistributeDto.java
  8. 4
      src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDto.java
  9. 4
      src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java
  10. 90
      src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintNegativeVo.java
  11. 6
      src/main/java/com/biutag/supervision/pojo/vo/NegativeHdjq.java
  12. 55
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  13. 10
      src/main/resources/mapper/DataPetitionComplaintMapper.xml

1
src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java

@ -6,6 +6,7 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public enum ProblemSourcesEnum {
XCDC("现场督察", "13"),
LMGZ("灵敏感知", "14"),
ZXDC("专项督察", "15"),

114
src/main/java/com/biutag/supervision/controller/books/NegativeBookController.java

@ -3,14 +3,18 @@ package com.biutag.supervision.controller.books;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.constants.enums.DepartLevelEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.SpecialSupervisionEnum;
import com.biutag.supervision.mapper.DataPetitionComplaintMapper;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.DataPetitionComplaint;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.param.NegativeQueryParam;
import com.biutag.supervision.pojo.vo.DataPetitionComplaintNegativeVo;
import com.biutag.supervision.pojo.vo.DepartTree;
import com.biutag.supervision.pojo.vo.NegativeHdjq;
import com.biutag.supervision.service.NegativeBlameService;
@ -19,6 +23,7 @@ import com.biutag.supervision.service.SupDepartService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -43,6 +48,8 @@ public class NegativeBookController {
private final SupDepartService departService;
private final DataPetitionComplaintMapper dataPetitionComplaintMapper;
@GetMapping("hdjq")
public Result<Page<NegativeHdjq>> page(NegativeQueryParam param) {
LambdaQueryWrapper<Negative> queryWrapper = new LambdaQueryWrapper<>();
@ -50,6 +57,7 @@ public class NegativeBookController {
.eq(Negative::getSpecialSupervision, SpecialSupervisionEnum.HDJQ.getValue())
.in(!param.getProcessingStatus().isEmpty(), Negative::getProcessingStatus, param.getProcessingStatus())
.like(StrUtil.isNotBlank(param.getThingDesc()), Negative::getThingDesc, param.getThingDesc())
.like(StrUtil.isNotBlank(param.getCheckStatusDesc()), Negative::getCheckStatusDesc, param.getCheckStatusDesc())
.like(StrUtil.isNotBlank(param.getReportNumber()), Negative::getReportNumber, param.getReportNumber())
.eq(Objects.nonNull(param.getCrtDepartLevel()), Negative::getCrtDepartLevel, param.getCrtDepartLevel())
.orderByDesc(Negative::getDiscoveryTime)
@ -100,4 +108,110 @@ public class NegativeBookController {
return Result.success(new Page<NegativeHdjq>().setTotal(page.getTotal()).setRecords(list));
}
@GetMapping("xcdc")
public Result<Page<NegativeHdjq>> pageByXcdc(NegativeQueryParam param) {
LambdaQueryWrapper<Negative> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Negative::getProblemSourcesCode, ProblemSourcesEnum.XCDC.getValue())
.in(!param.getProcessingStatus().isEmpty(), Negative::getProcessingStatus, param.getProcessingStatus())
.like(StrUtil.isNotBlank(param.getThingDesc()), Negative::getThingDesc, param.getThingDesc())
.like(StrUtil.isNotBlank(param.getCheckStatusDesc()), Negative::getCheckStatusDesc, param.getCheckStatusDesc())
.eq(Objects.nonNull(param.getCrtDepartLevel()), Negative::getCrtDepartLevel, param.getCrtDepartLevel())
.orderByDesc(Negative::getDiscoveryTime);
if (param.getDiscoveryTime().size() == 2) {
queryWrapper.between(Negative::getDiscoveryTime, param.getDiscoveryTime().get(0), param.getDiscoveryTime().get(1));
}
// 涉及单位
if (StrUtil.isNotBlank(param.getInvolveDepartId())) {
List<String> departIds = departService.getAllNodeIds(param.getInvolveDepartId());
queryWrapper.in(Negative::getInvolveDepartId, departIds);
}
// 办理单位
if (StrUtil.isNotBlank(param.getHandleDepartId())) {
List<DepartTree> nodes = departService.getAllNode(List.of(param.getHandleDepartId()));
List<String> secondIds = nodes.stream().filter(node -> DepartLevelEnum.SECOND.getValue().equals(node.getLevel())).map(DepartTree::getId).toList();
if (!secondIds.isEmpty()) {
queryWrapper.in(Negative::getHandleSecondDepartId, secondIds);
} else {
queryWrapper.in(Negative::getHandleThreeDepartId, nodes.stream().filter(node -> DepartLevelEnum.THREE.getValue().equals(node.getLevel())).map(DepartTree::getId).toList());
}
}
if (StrUtil.isNotBlank(param.getBlameKey()) && StrUtil.isNotBlank(param.getBlameValue())) {
LambdaQueryWrapper<NegativeBlame> qw = new LambdaQueryWrapper<>();
switch (param.getResponderKey()) {
case "name":
qw.like(NegativeBlame::getBlameName, param.getBlameValue());
break;
case "empNo":
qw.like(NegativeBlame::getBlameEmpNo, param.getBlameValue());
break;
case "idCode":
qw.like(NegativeBlame::getBlameIdCode, param.getBlameValue());
break;
}
List<NegativeBlame> blames = blameService.list(qw);
if (blames.isEmpty()) {
return Result.success(new Page<NegativeHdjq>().setTotal(0).setRecords(new ArrayList<>()));
}
queryWrapper.in(Negative::getId, blames.stream().map(NegativeBlame::getNegativeId).collect(Collectors.toSet()));
}
Page<Negative> page = negativeService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
List<NegativeHdjq> list = page.getRecords().stream().map(item -> {
NegativeHdjq negativeHdjq = new NegativeHdjq();
BeanUtil.copyProperties(item, negativeHdjq);
return negativeHdjq;
}).toList();
return Result.success(new Page<NegativeHdjq>().setTotal(page.getTotal()).setRecords(list));
}
@GetMapping("ajhc")
public Result<Page<NegativeHdjq>> pageByAjhc(NegativeQueryParam param) {
return Result.success();
}
@GetMapping("xf/{problemSourcesCode}")
public Result<Page<DataPetitionComplaintNegativeVo>> pageByGabxf(@PathVariable String problemSourcesCode, NegativeQueryParam param) {
QueryWrapper<DataPetitionComplaint> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("pc.problem_sources_code", problemSourcesCode)
.in(!param.getProcessingStatus().isEmpty(), "n.Processing_Status", param.getProcessingStatus())
.like(StrUtil.isNotBlank(param.getThingDesc()), "pc.Thing_Desc", param.getThingDesc())
.like(StrUtil.isNotBlank(param.getCheckStatusDesc()), "n.checkStatusDesc", param.getCheckStatusDesc())
.like(StrUtil.isNotBlank(param.getInitialPetition()), "pc.Initial_Petition", param.getInitialPetition());
// 涉及单位
if (StrUtil.isNotBlank(param.getInvolveDepartId())) {
List<String> departIds = departService.getAllNodeIds(param.getInvolveDepartId());
queryWrapper.in("n.involveDepartId", departIds);
}
// 办理单位
if (StrUtil.isNotBlank(param.getHandleDepartId())) {
List<DepartTree> nodes = departService.getAllNode(List.of(param.getHandleDepartId()));
List<String> secondIds = nodes.stream().filter(node -> DepartLevelEnum.SECOND.getValue().equals(node.getLevel())).map(DepartTree::getId).toList();
if (!secondIds.isEmpty()) {
queryWrapper.in("n.Handle_second_depart_id", secondIds);
} else {
queryWrapper.in("n.Handle_three_depart_Id", nodes.stream().filter(node -> DepartLevelEnum.THREE.getValue().equals(node.getLevel())).map(DepartTree::getId).toList());
}
}
if (StrUtil.isNotBlank(param.getBlameKey()) && StrUtil.isNotBlank(param.getBlameValue())) {
LambdaQueryWrapper<NegativeBlame> qw = new LambdaQueryWrapper<>();
switch (param.getResponderKey()) {
case "name":
qw.like(NegativeBlame::getBlameName, param.getBlameValue());
break;
case "empNo":
qw.like(NegativeBlame::getBlameEmpNo, param.getBlameValue());
break;
case "idCode":
qw.like(NegativeBlame::getBlameIdCode, param.getBlameValue());
break;
}
List<NegativeBlame> blames = blameService.list(qw);
if (blames.isEmpty()) {
return Result.success(new Page<DataPetitionComplaintNegativeVo>().setTotal(0).setRecords(new ArrayList<>()));
}
queryWrapper.in("n.id", blames.stream().map(NegativeBlame::getNegativeId).collect(Collectors.toSet()));
}
Page<DataPetitionComplaintNegativeVo> page = dataPetitionComplaintMapper.queryBooks(Page.of(param.getCurrent(), param.getSize()), queryWrapper);
return Result.success(page);
}
}

63
src/main/java/com/biutag/supervision/controller/sensitiveperception/ScoreController.java

@ -93,38 +93,47 @@ public class ScoreController {
if (Objects.isNull(size)) {
size = 1000000;
}
try {
updateDepartScore();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
List<RiskPersonal> riskPersonals = riskPersonalService.page(Page.of(1, size), new LambdaQueryWrapper<RiskPersonal>().eq(RiskPersonal::getDel, AppConstants.UN_DEL)
).getRecords();
log.info("{}条数据正在打分", riskPersonals.size());
List<RiskScoreRule> rules1 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getLevel, 1));
riskPersonals.forEach(personal -> {
log.info("{}-{} 开始打分--------------------------------------", personal.getName(), personal.getIdCode());
double riskScore = rules1.stream().mapToDouble(rule -> {
List<RiskScoreRule> rules2 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getPid, rule.getId())
.eq(RiskScoreRule::getLevel, 2));
double score2 = rules2.stream().mapToDouble(rule2 -> {
Model model = modelService.getOne(new LambdaQueryWrapper<Model>().eq(Model::getRiskScoreRuleId, rule2.getId()));
if (Objects.isNull(model)) {
log.info("{} 分值 = {}", rule.getRiskName(), 0);
return 0;
}
double score3 = riskModelTaskClueService.list(new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getModelId, model.getId())
.eq(RiskModelTaskClue::getIdCode, personal.getIdCode())
.eq(RiskModelTaskClue::getDel, AppConstants.UN_DEL))
.stream().mapToDouble(RiskModelTaskClue::getScore).sum();
score3 = Math.min(rule2.getScore(), score3);
log.info("{} 分值 = {}", rule2.getRiskName(), score3);
return score3;
try {
riskPersonals.forEach(personal -> {
log.info("{}-{} 开始打分--------------------------------------", personal.getName(), personal.getIdCode());
double riskScore = rules1.stream().mapToDouble(rule -> {
List<RiskScoreRule> rules2 = riskScoreRuleService.list(new LambdaQueryWrapper<RiskScoreRule>().eq(RiskScoreRule::getPid, rule.getId())
.eq(RiskScoreRule::getLevel, 2));
double score2 = rules2.stream().mapToDouble(rule2 -> {
Model model = modelService.getOne(new LambdaQueryWrapper<Model>().eq(Model::getRiskScoreRuleId, rule2.getId()));
if (Objects.isNull(model)) {
log.info("{} 分值 = {}", rule.getRiskName(), 0);
return 0;
}
double score3 = riskModelTaskClueService.list(new LambdaQueryWrapper<RiskModelTaskClue>()
.eq(RiskModelTaskClue::getModelId, model.getId())
.eq(RiskModelTaskClue::getIdCode, personal.getIdCode())
.eq(RiskModelTaskClue::getDel, AppConstants.UN_DEL))
.stream().mapToDouble(RiskModelTaskClue::getScore).sum();
score3 = Math.min(rule2.getScore(), score3);
log.info("{} 分值 = {}", rule2.getRiskName(), score3);
return score3;
}).sum();
log.info("{} 分值 = {}", rule.getRiskName(), score2);
return score2 / rule.getScore() * rule.getWeight();
}).sum();
log.info("{} 分值 = {}", rule.getRiskName(), score2);
return score2 / rule.getScore() * rule.getWeight();
}).sum();
riskScore = NumberUtil.round(riskScore, 2).doubleValue();
log.info("{}-{}的 分值 = {}", personal.getName(), personal.getIdCode(), riskScore);
riskPersonalService.update(new LambdaUpdateWrapper<RiskPersonal>().eq(RiskPersonal::getIdCode, personal.getIdCode()).set(RiskPersonal::getRiskScore, riskScore));
});
updateDepartScore();
riskScore = NumberUtil.round(riskScore, 2).doubleValue();
log.info("{}-{}的 分值 = {}", personal.getName(), personal.getIdCode(), riskScore);
riskPersonalService.update(new LambdaUpdateWrapper<RiskPersonal>().eq(RiskPersonal::getIdCode, personal.getIdCode()).set(RiskPersonal::getRiskScore, riskScore));
});
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return Result.success("success");
}

17
src/main/java/com/biutag/supervision/controller/work/NegativeTaskController.java

@ -14,6 +14,7 @@ import com.biutag.supervision.constants.enums.DepartLevelEnum;
import com.biutag.supervision.constants.enums.PoliceTypeEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.dto.NegativeImportDistributeDto;
import com.biutag.supervision.pojo.dto.NegativeImportDto;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.entity.SupDepart;
@ -75,14 +76,16 @@ public class NegativeTaskController {
List<NegativeImportDto> list = new ArrayList<>();
List<SupDictData> suspectProblem = dictDataService.listByDictType("suspectProblem");
List<SupDictData> specialSupervision = dictDataService.listByDictType("specialSupervision");
ExcelReader excelReader = EasyExcel.read(file.getInputStream(), NegativeImportDto.class, new ReadListener<NegativeImportDto>() {
@Override
public void invoke(NegativeImportDto data, AnalysisContext analysisContext) {
Set<ConstraintViolation<NegativeImportDto>> validate = validator.validate(data);
if (!validate.isEmpty()) {
String message = validate.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining("\n"));
throw new RuntimeException(message);
throw new RuntimeException(String.format("第 %s 条数据:%s", list.size() + 1, message));
}
if (StrUtil.isNotBlank(data.getProblemSources())) {
ProblemSourcesEnum problemSourcesEnum = ProblemSourcesEnum.getByLabel(data.getProblemSources());
@ -118,7 +121,7 @@ public class NegativeTaskController {
if (departNames.length > 1) {
List<SupDepart> threeDeparts = departService.list(new LambdaQueryWrapper<SupDepart>()
.eq(SupDepart::getPid, departs.get(0).getId())
.eq(SupDepart::getShortName, departNames[0]));
.eq(SupDepart::getShortName, departNames[1]));
if (!threeDeparts.isEmpty()) {
data.setInvolveDepartId(threeDeparts.get(0).getId());
data.setInvolveDepartName(threeDeparts.get(0).getShortName());
@ -128,7 +131,10 @@ public class NegativeTaskController {
data.setInvolveDepartName(departs.get(0).getShortName());
}
}
}
if (StrUtil.isNotBlank(data.getSpecialSupervisionName())) {
String dictVal = specialSupervision.stream().filter(item -> data.getSpecialSupervisionName().equals(item.getDictLabel())).map(SupDictData::getDictValue).findFirst().orElse(null);
data.setSpecialSupervision(dictVal);
}
list.add(data);
}
@ -142,4 +148,9 @@ public class NegativeTaskController {
return Result.success(list);
}
@PostMapping("distribute")
public Result<Boolean> distribute(@RequestBody NegativeImportDistributeDto distributeData) {
return Result.success(negativeTaskService.distribution(distributeData));
}
}

4
src/main/java/com/biutag/supervision/mapper/DataPetitionComplaintMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.dto.CaseVerifDepart;
import com.biutag.supervision.pojo.vo.DataPetitionComplaintNegativeVo;
import com.biutag.supervision.pojo.entity.DataPetitionComplaint;
import com.biutag.supervision.pojo.vo.*;
import org.apache.ibatis.annotations.Param;
@ -347,4 +348,7 @@ public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComp
"and dpc.third_depart_id=#{departId} " +
"and discovery_time BETWEEN #{beginTime} AND #{endTime} ")
Integer selectPoliceMailBySourceCode(Date beginTime, Date endTime, String problemSourcesCode, String departId);
Page<DataPetitionComplaintNegativeVo> queryBooks(@Param("page") Page<DataPetitionComplaint> page, @Param(Constants.WRAPPER) QueryWrapper<DataPetitionComplaint> queryWrapper);
}

2
src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java

@ -107,4 +107,6 @@ public class NegativeDto {
// 通报期数
private String reportNumber;
private String taskId;
}

42
src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDistributeDto.java

@ -0,0 +1,42 @@
package com.biutag.supervision.pojo.dto;
import com.biutag.supervision.pojo.vo.FileVo;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2024/12/27
*/
@Setter
@Getter
public class NegativeImportDistributeDto {
private List<NegativeImportDto> data = new ArrayList<>();
private String taskName;
// 办理时限
@NotBlank
private String timeLimit;
// 最大签收时长(天)
private Integer maxSignDuration;
// 最大办理时长(天)
private Integer maxHandleDuration;
// 最大延期时长(天)
private Integer maxExtensionDuration;
// 审批流程
@NotBlank
private String approvalFlow;
private List<FileVo> thingFiles = new ArrayList<>();
}

4
src/main/java/com/biutag/supervision/pojo/dto/NegativeImportDto.java

@ -16,13 +16,12 @@ import java.util.List;
public class NegativeImportDto {
// 问题发现时间
@NotNull(message = "问题发现时间不能为空")
@ExcelProperty("问题发现时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
@ExcelProperty("问题发生时间")
@NotNull(message = "问题发生时间不能为空")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
@ -73,7 +72,6 @@ public class NegativeImportDto {
// 涉及案件/警情编号
@ExcelProperty("案件/警情编号")
@NotBlank(message = "案件/警情编号不能为空")
private String caseNumber;
// 专项督察

4
src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java

@ -76,4 +76,8 @@ public class NegativeQueryParam extends BasePage {
private String caseNumber;
private String checkStatusDesc;
private String initialPetition;
}

90
src/main/java/com/biutag/supervision/pojo/vo/DataPetitionComplaintNegativeVo.java

@ -0,0 +1,90 @@
package com.biutag.supervision.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2024/12/27
*/
@Setter
@Getter
public class DataPetitionComplaintNegativeVo {
private String id;
// 投诉渠道
private String channelForFilingComplaints;
// 受理层级
private String acceptanceLevel;
// 登记时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 投诉人
private String responderName;
// 投诉人电话
private String responderPhone;
// 初重信访
private String initialPetition;
// 缠访闹访
private Boolean entanglementVisits;
// 群众集访
private Boolean massVisits;
// 涉嫌问题
private String involveProblem;
// 业务类别
private String businessTypeName;
// 涉及警种名称
private String policeTypeName;
// 具体内容
private String thingDesc;
//---------------------
// 涉及单位 二级
private String secondDepartId;
private String secondDepartName;
// 所对
private String thirdDepartId;
private String thirdDepartName;
private LocalDateTime createTime;
private LocalDateTime updateTime;
// 来源
private String problemSourcesCode;
// 分发状态
private String distributionState;
// 问题核查情况
private String checkStatusDesc;
private String processingStatus;
private String handleSecondDepartName;
private String handleThreeDepartName;
private String involveDepartName;
}

6
src/main/java/com/biutag/supervision/pojo/vo/NegativeHdjq.java

@ -1,5 +1,6 @@
package com.biutag.supervision.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
@ -54,4 +55,9 @@ public class NegativeHdjq {
// 办理状态
private String processingStatus;
private String checkStatus;
// 核查情况
private String checkStatusName;
}

55
src/main/java/com/biutag/supervision/service/NegativeTaskService.java

@ -1,5 +1,6 @@
package com.biutag.supervision.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
@ -8,11 +9,13 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.enums.NegativeTaskCategoryEnum;
import com.biutag.supervision.constants.enums.NegativeTaskStatusEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.constants.enums.*;
import com.biutag.supervision.mapper.NegativeTaskMapper;
import com.biutag.supervision.pojo.dto.*;
import com.biutag.supervision.pojo.entity.DataPetition12337;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.NegativeTaskQueryParam;
import com.biutag.supervision.pojo.vo.ExportNegativeVo;
import com.biutag.supervision.pojo.vo.NegativeQueryVo;
@ -22,12 +25,14 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@ -38,6 +43,10 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
private final FileService fileService;
private final SupDepartService departService;
private final NegativeService negativeService;
public Page<NegativeTask> page(NegativeTaskQueryParam param) {
LambdaQueryWrapper<NegativeTask> queryWrapper = new LambdaQueryWrapper<NegativeTask>()
.eq(NegativeTask::getCategory, NegativeTaskCategoryEnum.EXPORT.getValue())
@ -100,4 +109,44 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
.set(NegativeTask::getUpdTime, LocalDateTime.now()));
}
/**
* 批量下发
* @param distributeData
* @return
*/
@Transactional(rollbackFor = Exception.class)
public boolean distribution(NegativeImportDistributeDto distributeData) {
List<NegativeImportDto> data = distributeData.getData();
NegativeTask negativeTask = new NegativeTask();
negativeTask.setId(IdUtil.getSnowflakeNextIdStr());
negativeTask.setTaskName(distributeData.getTaskName());
negativeTask.setImportRow(data.size());
negativeTask.setCrtTime(LocalDateTime.now());
negativeTask.setSource("标准模板");
UserAuth user = UserContextHolder.getCurrentUser();
negativeTask.setCrtUser(user.getNickName());
save(negativeTask);
data.forEach(item -> {
NegativeDto negativeDto = new NegativeDto();
BeanUtil.copyProperties(item, negativeDto);
negativeDto.setThingFiles(distributeData.getThingFiles());
SupDepart depart = departService.getById(item.getInvolveDepartId());
negativeDto.setDepartId(item.getInvolveDepartId());
negativeDto.setDepartName(depart.getShortName());
negativeDto.setHostLevel(HostLevelEnums.SECOND.getValue());
negativeDto.setApprovalFlow(distributeData.getApprovalFlow()); // 审批流程
negativeDto.setTimeLimit(distributeData.getTimeLimit()); // 办理时限
negativeDto.setMaxSignDuration(distributeData.getMaxSignDuration());
negativeDto.setMaxHandleDuration(distributeData.getMaxHandleDuration());
negativeDto.setMaxExtensionDuration(distributeData.getMaxExtensionDuration());
negativeDto.setTaskId(negativeTask.getId());
negativeService.save(negativeDto);
});
return true;
}
}

10
src/main/resources/mapper/DataPetitionComplaintMapper.xml

@ -13,4 +13,14 @@
${ew.getCustomSqlSegment}
</select>
<select id="queryBooks" resultType="com.biutag.supervision.pojo.vo.DataPetitionComplaintNegativeVo">
SELECT
pc.*, n.id negative_id, n.*
FROM
data_petition_complaint pc
LEFT JOIN negative n ON n.originId = pc.origin_id
${ew.getCustomSqlSegment}
</select>
</mapper>

Loading…
Cancel
Save