Browse Source

2025/0205

main
wxc 1 year ago
parent
commit
8b140c6110
  1. 3
      sql/20250122.sql
  2. 13
      sql/250124.sql
  3. 1
      src/main/java/com/biutag/supervision/config/InterceptorConfig.java
  4. 19
      src/main/java/com/biutag/supervision/constants/enums/AccountabilityTargetEnum.java
  5. 14
      src/main/java/com/biutag/supervision/constants/enums/ApprovalFlowEnum.java
  6. 6
      src/main/java/com/biutag/supervision/constants/enums/BusinessTypeEnum.java
  7. 15
      src/main/java/com/biutag/supervision/constants/enums/HostLevelEnums.java
  8. 8
      src/main/java/com/biutag/supervision/constants/enums/TimeLimitEnum.java
  9. 37
      src/main/java/com/biutag/supervision/controller/AuthController.java
  10. 2
      src/main/java/com/biutag/supervision/controller/LoginController.java
  11. 100
      src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java
  12. 28
      src/main/java/com/biutag/supervision/controller/work/ComfortController.java
  13. 2
      src/main/java/com/biutag/supervision/controller/work/NewsController.java
  14. 6
      src/main/java/com/biutag/supervision/flow/action/ApplyCompletionAction.java
  15. 3
      src/main/java/com/biutag/supervision/flow/action/SaveAction.java
  16. 10
      src/main/java/com/biutag/supervision/pojo/domain/Blame.java
  17. 53
      src/main/java/com/biutag/supervision/pojo/dto/VideoInspectionDistributeDto.java
  18. 10
      src/main/java/com/biutag/supervision/pojo/dto/flow/VerifyData.java
  19. 5
      src/main/java/com/biutag/supervision/pojo/entity/DataAlarmAlarmInfo.java
  20. 8
      src/main/java/com/biutag/supervision/pojo/entity/NegativeBlame.java
  21. 12
      src/main/java/com/biutag/supervision/pojo/entity/RpcApply.java
  22. 75
      src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeVo.java
  23. 3
      src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java
  24. 9
      src/main/java/com/biutag/supervision/pojo/vo/VideoInspectionVo.java
  25. 1
      src/main/java/com/biutag/supervision/service/DataPetition12337Service.java
  26. 2
      src/main/java/com/biutag/supervision/service/HolidayService.java
  27. 8
      src/main/java/com/biutag/supervision/service/NegativeBlameService.java
  28. 2
      src/main/java/com/biutag/supervision/service/NegativeQueryService.java
  29. 16
      src/main/java/com/biutag/supervision/service/NegativeService.java
  30. 48
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  31. 2
      src/main/java/com/biutag/supervision/service/NegativeWorkService.java
  32. 1
      src/main/resources/jitMessage.properties
  33. 5
      src/main/resources/mapper/DataAlarmDispositionInfoMapper.xml
  34. BIN
      src/main/resources/static/templates/信访投诉数据台账(模板).xlsx

3
sql/20250122.sql

@ -0,0 +1,3 @@
ALTER TABLE `negative`.`negative_blame`
ADD COLUMN `handleResultNameOther` text NULL COMMENT '处理结果(其他)',
ADD COLUMN `leadHandleResultNameOther` text NULL COMMENT '领导处理结果(其他)';

13
sql/250124.sql

@ -0,0 +1,13 @@
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (314, 0, '不予追责', '2-1', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:22:32', '', '2025-01-24 11:22:32', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (315, 0, '单位月度考核降等', '2-2', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:22:41', '', '2025-01-24 11:22:41', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (316, 0, '单位季度考核降等', '2-3', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:22:51', '', '2025-01-24 11:22:51', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (317, 0, '单位责令书面检查', '2-4', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:23:03', '', '2025-01-24 11:23:03', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (318, 0, '单位月度考核扣分', '2-5', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:23:11', '', '2025-01-24 11:23:11', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (319, 0, '单位季度考核扣分', '2-6', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:23:19', '', '2025-01-24 11:23:19', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (320, 0, '纳入全年绩效考核', '2-7', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:23:28', '', '2025-01-24 11:23:28', '');
INSERT INTO `negative`.`sup_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (321, 0, '重组或撤换班子', '2-8', 'departHandleResult', '', '', '0', '0', '', '2025-01-24 11:23:37', '', '2025-01-24 11:23:37', '');
--
-- vi /etc/hosts
-- 11.32.30.103 wjccfwq.oss-cn-langfang-mps22s-d01-a.yun.ga

1
src/main/java/com/biutag/supervision/config/InterceptorConfig.java

@ -37,7 +37,6 @@ public class InterceptorConfig implements WebMvcConfigurer {
.excludePathPatterns("/api/**") .excludePathPatterns("/api/**")
// 登录 // 登录
.excludePathPatterns("/login", "/jit/**") .excludePathPatterns("/login", "/jit/**")
.excludePathPatterns("/auth/self")
.excludePathPatterns("/file/stream/**", "/templates/**") .excludePathPatterns("/file/stream/**", "/templates/**")
.excludePathPatterns("/datav/risk/**") .excludePathPatterns("/datav/risk/**")
.excludePathPatterns("/score/**") .excludePathPatterns("/score/**")

19
src/main/java/com/biutag/supervision/constants/enums/AccountabilityTargetEnum.java

@ -10,12 +10,23 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum AccountabilityTargetEnum { public enum AccountabilityTargetEnum {
PERSONAL("1"), PERSONAL("1", "涉及个人"),
DEPARTMENT("2", "涉及单位"),
PERSONAL_AND_DEPARTMENT("2"), PERSONAL_AND_DEPARTMENT("3", "涉及个人及单位");
DEPARTMENT("3");
@Getter @Getter
private String value; private String value;
@Getter
private String label;
public static String getLabel(String value) {
for (AccountabilityTargetEnum targetEnum : values()) {
if (targetEnum.getValue().equals(value)) {
return targetEnum.getLabel();
}
}
return "";
}
} }

14
src/main/java/com/biutag/supervision/constants/enums/ApprovalFlowEnum.java

@ -8,10 +8,18 @@ import lombok.Getter;
public enum ApprovalFlowEnum { public enum ApprovalFlowEnum {
// 二级审批 所队一>二级机构 // 二级审批 所队一>二级机构
SECOND_APPROVAL("2"), SECOND_APPROVAL("2", "二级审批"),
// 三级审批 所队一>二級机构一>市局 // 三级审批 所队一>二級机构一>市局
THREE_APPROVAL("3"); THREE_APPROVAL("3", "三级审批");
private String value; private String value;
private String label;
public static String getLabel(String value) {
for (ApprovalFlowEnum flowEnum : values()) {
if (flowEnum.getValue().equals(value)) {
return flowEnum.getLabel();
}
}
return "";
}
} }

6
src/main/java/com/biutag/supervision/constants/enums/BusinessTypeEnum.java

@ -17,9 +17,9 @@ public enum BusinessTypeEnum {
ABWW("安保维稳", "8", "AB", false), ABWW("安保维稳", "8", "AB", false),
JAFK("治安防控", "9", "ZA", false), JAFK("治安防控", "9", "ZA", false),
XZGL("行政管理", "10", "XZ", false), XZGL("行政管理", "10", "XZ", false),
FFJC("服务基层", "12", "FF", false), FFJC("服务基层", "11", "FF", false),
DWGL("队伍管理", "13", "DW", false), DWGL("队伍管理", "12", "DW", false),
QT("其他", "14", "QT", false); QT("其他", "13", "QT", false);
private String label; private String label;

15
src/main/java/com/biutag/supervision/constants/enums/HostLevelEnums.java

@ -7,9 +7,18 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum HostLevelEnums { public enum HostLevelEnums {
FIRST("1"), FIRST("1", "市局主办"),
SECOND("2"), SECOND("2", "二级机构主办"),
THREE("3"); THREE("3", "三级机构主办");
private String value; private String value;
private String label;
public static String getLabel(String value) {
for (HostLevelEnums hostLevelEnums : values()) {
if (hostLevelEnums.getValue().equals(value)) {
return hostLevelEnums.getLabel();
}
}
return "";
}
} }

8
src/main/java/com/biutag/supervision/constants/enums/TimeLimitEnum.java

@ -36,4 +36,12 @@ public enum TimeLimitEnum {
throw new RuntimeException(String.format("办理时限字典[%s]未找到", value)); throw new RuntimeException(String.format("办理时限字典[%s]未找到", value));
} }
public static String getLabel(String value) {
try {
return get(value).getLabel();
} catch (RuntimeException e) {
return "";
}
}
} }

37
src/main/java/com/biutag/supervision/controller/AuthController.java

@ -1,11 +1,8 @@
package com.biutag.supervision.controller; package com.biutag.supervision.controller;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.biutag.supervision.common.UserContextHolder; import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.AppConstants; import com.biutag.supervision.constants.AppConstants;
import com.biutag.supervision.constants.RedisKeyConstants;
import com.biutag.supervision.exception.AuthException; import com.biutag.supervision.exception.AuthException;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.domain.Self; import com.biutag.supervision.pojo.domain.Self;
@ -13,20 +10,13 @@ import com.biutag.supervision.pojo.entity.Menu;
import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.vo.MenuTree; import com.biutag.supervision.pojo.vo.MenuTree;
import com.biutag.supervision.service.MenuService; import com.biutag.supervision.service.MenuService;
import com.biutag.supervision.service.UserLoginService;
import com.biutag.supervision.util.JSON;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@ -36,16 +26,6 @@ public class AuthController {
private final MenuService menuService; private final MenuService menuService;
private final UserLoginService userLoginService;
private final RedisTemplate<Object, Object> redisTemplate;
@Value("${spring.profiles.active}")
private String profilesActive;
@Value("${negative.v1-user-url:''}")
private String v1UserUrl;
@GetMapping("self") @GetMapping("self")
public Result<Self> self() { public Result<Self> self() {
String authorization = UserContextHolder.getCurrentToken(); String authorization = UserContextHolder.getCurrentToken();
@ -53,23 +33,6 @@ public class AuthController {
throw new AuthException(); throw new AuthException();
} }
UserAuth user = UserContextHolder.getCurrentUser(); UserAuth user = UserContextHolder.getCurrentUser();
if ("prod".equals(profilesActive)) {
if (Objects.isNull(user)) {
HttpResponse httpResponse = HttpUtil
.createGet(v1UserUrl)
.bearerAuth(authorization)
.execute();
log.info("获取用户信息:{}", httpResponse.body());
JsonNode jsonNode = JSON.readTree(httpResponse.body());
String account = jsonNode.get("data")
.get("username").asText();
user = userLoginService.buildUserAuth(account);
redisTemplate.opsForValue().set(String.format(RedisKeyConstants.LOGIN_USERINFO_KEY, authorization), user, 24, TimeUnit.HOURS);
}
}
if (Objects.isNull(user)) {
throw new AuthException();
}
boolean superFlag = AppConstants.USER_TYPE_SUPER.equals(user.getUserType()); boolean superFlag = AppConstants.USER_TYPE_SUPER.equals(user.getUserType());
List<Menu> menus = superFlag ? menuService.listAll() : menuService.listMenuByCurrentUser(); List<Menu> menus = superFlag ? menuService.listAll() : menuService.listMenuByCurrentUser();
List<String> perms = superFlag ? List.of("*") : menuService.listPermsByCurrentUser(); List<String> perms = superFlag ? List.of("*") : menuService.listPermsByCurrentUser();

2
src/main/java/com/biutag/supervision/controller/LoginController.java

@ -44,7 +44,7 @@ public class LoginController {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new RuntimeException("用户名或密码有误,请重新输入"); throw new RuntimeException("用户名或密码有误,请重新输入");
} }
String token = userLoginService.login(account.getAccount()); String token = userLoginService.login(baseAccount.getAccount());
return Result.success(new TokenVo().setToken(token)); return Result.success(new TokenVo().setToken(token));
} }

100
src/main/java/com/biutag/supervision/controller/data/VideoInspectionController.java

@ -1,27 +1,29 @@
package com.biutag.supervision.controller.data; package com.biutag.supervision.controller.data;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.enums.*;
import com.biutag.supervision.mapper.DataAlarmDispositionInfoMapper; import com.biutag.supervision.mapper.DataAlarmDispositionInfoMapper;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.DataAlarmAlarmInfo; import com.biutag.supervision.pojo.dto.NegativeDto;
import com.biutag.supervision.pojo.entity.DataAlarmDispositionInfo; import com.biutag.supervision.pojo.dto.VideoInspectionDistributeDto;
import com.biutag.supervision.pojo.entity.DataAlarmYjzj; import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.VideoInspectionQueryParam; import com.biutag.supervision.pojo.param.VideoInspectionQueryParam;
import com.biutag.supervision.pojo.vo.VideoInspectionInfo; import com.biutag.supervision.pojo.vo.VideoInspectionInfo;
import com.biutag.supervision.pojo.vo.VideoInspectionVo; import com.biutag.supervision.pojo.vo.VideoInspectionVo;
import com.biutag.supervision.service.DataAlarmAlarmInfoService; import com.biutag.supervision.service.*;
import com.biutag.supervision.service.DataAlarmDispositionInfoService;
import com.biutag.supervision.service.DataAlarmYjzjService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
/** /**
@ -41,9 +43,16 @@ public class VideoInspectionController {
private final DataAlarmYjzjService dataAlarmYjzjService; private final DataAlarmYjzjService dataAlarmYjzjService;
private final NegativeTaskService negativeTaskService;
private final SupDepartService departService;
private final NegativeService negativeService;
private final SupExternalDepartService externalDepartService;
@Value("${videoInspection.url}") @Value("${videoInspection.url}")
private String videoInspectionUrl; private String videoInspectionUrl;
// private static final String videoInspectionUrl = "http://65.47.26.33:8090/";
@GetMapping @GetMapping
public Result<Page<VideoInspectionVo>> list(VideoInspectionQueryParam param) { public Result<Page<VideoInspectionVo>> list(VideoInspectionQueryParam param) {
@ -74,5 +83,74 @@ public class VideoInspectionController {
return Result.success(info); return Result.success(info);
} }
/**
* 下发
* @param distributeData
* @return
*/
@PostMapping("distribute")
@Transactional(rollbackFor = Exception.class)
public Result<Void> distribute(@RequestBody VideoInspectionDistributeDto distributeData) {
List<VideoInspectionVo> 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());
negativeTaskService.save(negativeTask);
data.forEach(item -> {
if (StrUtil.isBlank(item.getFsdwGajgjgdm())) {
throw new RuntimeException("发生单位编码为空");
}
// 发生单位代码
SupExternalDepart externalDepart = externalDepartService.getOne(new LambdaUpdateWrapper<SupExternalDepart>().eq(SupExternalDepart::getExternalId, item.getFsdwGajgjgdm()).eq(SupExternalDepart::getSource,
"视频督察"));
if (externalDepart == null || StrUtil.isBlank(externalDepart.getInternalId())) {
throw new RuntimeException(String.format("%s-%s 未匹配单位映射,请联系管理员", item.getFsdwGajgmc(), item.getFsdwGajgjgdm()));
}
SupDepart depart = departService.getById(externalDepart.getInternalId());
NegativeDto negativeDto = new NegativeDto();
negativeDto.setThingDesc(item.getContent());
negativeDto.setDiscoveryTime(LocalDateTime.parse(item.getRqsj(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
negativeDto.setInvolveDepartId(depart.getId());
negativeDto.setInvolveDepartName(depart.getShortName());
negativeDto.setBusinessTypeCode(distributeData.getBusinessTypeCode());
negativeDto.setPoliceType(distributeData.getPoliceType());
negativeDto.setInvolveProblem(distributeData.getInvolveProblem());
// 视频督察
negativeDto.setProblemSourcesCode(ProblemSourcesEnum.SPDC.getValue());
negativeDto.setProblemSources(ProblemSourcesEnum.SPDC.getLabel());
if (DepartLevelEnum.SECOND.getValue().equals(depart.getLevel())) {
negativeDto.setDepartId(depart.getId());
negativeDto.setDepartName(depart.getShortName());
} else if(DepartLevelEnum.THREE.getValue().equals(depart.getLevel())) {
if (DistributionFlowEnum.SECOND.getValue().equals(distributeData.getDistributionFlow())) {
SupDepart parent = departService.getById(depart.getPid());
negativeDto.setDepartId(parent.getId());
negativeDto.setDepartName(parent.getShortName());
} else {
negativeDto.setDepartId(depart.getId());
negativeDto.setDepartName(depart.getShortName());
}
} else {
throw new RuntimeException("数据异常,请联系系统管理员");
}
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);
// 更新状态
dataAlarmAlarmInfoService.update(new LambdaUpdateWrapper<DataAlarmAlarmInfo>().eq(DataAlarmAlarmInfo::getId, item.getId()).set(DataAlarmAlarmInfo::getDistributionState, DistributionStateEnum.DISTRIBUTED.getValue()));
});
return Result.success();
}
} }

28
src/main/java/com/biutag/supervision/controller/work/ComfortController.java

@ -0,0 +1,28 @@
package com.biutag.supervision.controller.work;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.entity.RpcApply;
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;
/**
* @author wxc
* @date 2025/1/20
*/
@RequiredArgsConstructor
@RequestMapping("comfort")
@RestController
public class ComfortController {
private final RpcApplyService rpcApplyService;
@GetMapping
public Result<Page<RpcApply>> list() {
return Result.success(rpcApplyService.page(Page.of(1, 10)));
}
}

2
src/main/java/com/biutag/supervision/controller/work/NewsController.java

@ -30,7 +30,7 @@ public class NewsController {
queryWrapper.between(News::getReleaseTime, param.getReleaseTime().get(0), param.getReleaseTime().get(1)); queryWrapper.between(News::getReleaseTime, param.getReleaseTime().get(0), param.getReleaseTime().get(1));
} }
queryWrapper.eq(StrUtil.isNotBlank(param.getSource()), News::getSource, param.getSource()) queryWrapper.eq(StrUtil.isNotBlank(param.getSource()), News::getSource, param.getSource())
.eq(StrUtil.isNotBlank(param.getWorkType()), News::getSource, param.getWorkType()) .eq(StrUtil.isNotBlank(param.getWorkType()), News::getWorkType, param.getWorkType())
.like(StrUtil.isNotBlank(param.getContentTxt()), News::getContentTxt, param.getContentTxt()) .like(StrUtil.isNotBlank(param.getContentTxt()), News::getContentTxt, param.getContentTxt())
.orderByDesc(News::getCreateTime); .orderByDesc(News::getCreateTime);
Page<News> page = newsService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper); Page<News> page = newsService.page(Page.of(param.getCurrent(), param.getSize()), queryWrapper);

6
src/main/java/com/biutag/supervision/flow/action/ApplyCompletionAction.java

@ -126,6 +126,9 @@ public class ApplyCompletionAction implements Action {
.toList(); .toList();
if(!blameLeaders.isEmpty()) { if(!blameLeaders.isEmpty()) {
BeanUtil.copyProperties(blameLeaders.get(0), negativeBlame); BeanUtil.copyProperties(blameLeaders.get(0), negativeBlame);
if (CollectionUtil.isNotEmpty(blameLeaders.get(0).getLeadHandleResultCode())) {
negativeBlame.setLeadHandleResultCode(String.join(",", blameLeaders.get(0).getLeadHandleResultCode()));
}
} }
negativeBlame negativeBlame
@ -133,6 +136,9 @@ public class ApplyCompletionAction implements Action {
.setNegativeId(negative.getId()) .setNegativeId(negative.getId())
.setCrtTime(now) .setCrtTime(now)
.setUpdTime(now); .setUpdTime(now);
if (CollectionUtil.isNotEmpty(item.getHandleResultCode())) {
negativeBlame.setHandleResultCode(String.join(",", item.getHandleResultCode()));
}
problemRelations.addAll(item.getProblems().stream().filter(problem -> StrUtil.isNotBlank(problem.getOneLevelCode())).map(problem -> { problemRelations.addAll(item.getProblems().stream().filter(problem -> StrUtil.isNotBlank(problem.getOneLevelCode())).map(problem -> {
NegativeProblemRelation problemRelation = new NegativeProblemRelation(); NegativeProblemRelation problemRelation = new NegativeProblemRelation();

3
src/main/java/com/biutag/supervision/flow/action/SaveAction.java

@ -103,6 +103,9 @@ public class SaveAction implements Action {
.filter(leader -> leader.getBlameIdCodes().contains(item.getBlameIdCode())).findFirst().orElse(null); .filter(leader -> leader.getBlameIdCodes().contains(item.getBlameIdCode())).findFirst().orElse(null);
if (Objects.nonNull(blameLeader)) { if (Objects.nonNull(blameLeader)) {
BeanUtil.copyProperties(blameLeader, negativeBlame); BeanUtil.copyProperties(blameLeader, negativeBlame);
if (CollectionUtil.isNotEmpty(blameLeader.getLeadHandleResultCode())) {
negativeBlame.setLeadHandleResultCode(String.join(",", blameLeader.getLeadHandleResultCode()));
}
} }
negativeBlame.setNegativeId(negativeId) negativeBlame.setNegativeId(negativeId)
.setBlameId(IdUtil.getSnowflakeNextIdStr()) .setBlameId(IdUtil.getSnowflakeNextIdStr())

10
src/main/java/com/biutag/supervision/pojo/domain/Blame.java

@ -87,11 +87,14 @@ public class Blame {
private String responsibilityTypeName; private String responsibilityTypeName;
// 处理结果 // 处理结果
private String handleResultCode; private List<String> handleResultCode;
// 处理结果 // 处理结果
private String handleResultName; private String handleResultName;
// 处理结果(其他)
private String handleResultNameOther;
// 维权容错 // 维权容错
private String protectRightsCode; private String protectRightsCode;
@ -151,11 +154,14 @@ public class Blame {
private String leadResponsibilityTypeCode; private String leadResponsibilityTypeCode;
// 领导处理结果 // 领导处理结果
private String leadHandleResultCode; private List<String> leadHandleResultCode;
// 领导处理结果 // 领导处理结果
private String leadHandleResultName; private String leadHandleResultName;
// 领导处理结果(其他)
private String leadHandleResultNameOther;
// 领导维权容错 // 领导维权容错
private String leadProtectRightsName; private String leadProtectRightsName;

53
src/main/java/com/biutag/supervision/pojo/dto/VideoInspectionDistributeDto.java

@ -0,0 +1,53 @@
package com.biutag.supervision.pojo.dto;
import com.biutag.supervision.pojo.vo.VideoInspectionVo;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2025/1/23
*/
@Setter
@Getter
public class VideoInspectionDistributeDto {
private List<VideoInspectionVo> data = new ArrayList<>();
private String taskName;
// 办理时限
@NotBlank
private String timeLimit;
// 最大签收时长(天)
private Integer maxSignDuration;
// 最大办理时长(天)
private Integer maxHandleDuration;
// 最大延期时长(天)
private Integer maxExtensionDuration;
// 下发流程
private String distributionFlow;
// 审批流程
@NotBlank
private String approvalFlow;
private String handleDepartId;
// 业务类型
private String businessTypeCode;
// 警种
private String policeType;
private List<String> involveProblem = new ArrayList<>();
}

10
src/main/java/com/biutag/supervision/pojo/dto/flow/VerifyData.java

@ -130,12 +130,15 @@ public class VerifyData {
// 处理结果 // 处理结果
@NotBlank @NotBlank
private String handleResultCode; private List<String> handleResultCode;
// 处理结果 // 处理结果
@NotBlank @NotBlank
private String handleResultName; private String handleResultName;
// 其他处理结果
private String handleResultNameOther;
// 维权容错 // 维权容错
@NotBlank @NotBlank
private String protectRightsCode; private String protectRightsCode;
@ -193,12 +196,15 @@ public class VerifyData {
// 领导处理结果 // 领导处理结果
@NotBlank @NotBlank
private String leadHandleResultCode; private List<String> leadHandleResultCode;
// 领导处理结果 // 领导处理结果
@NotBlank @NotBlank
private String leadHandleResultName; private String leadHandleResultName;
// 领导处理结果
private String leadHandleResultNameOther;
// 领导维权容错 // 领导维权容错
@NotBlank @NotBlank
private String leadProtectRightsName; private String leadProtectRightsName;

5
src/main/java/com/biutag/supervision/pojo/entity/DataAlarmAlarmInfo.java

@ -50,7 +50,7 @@ public class DataAlarmAlarmInfo {
// 发生单位代码 // 发生单位代码
@TableField("FSDW_GAJGJGDM") @TableField("FSDW_GAJGJGDM")
private String FSDW_GAJGJGDM; private String fsdwGajgjgdm;
// 发生单位名称 // 发生单位名称
@TableField("FSDW_GAJGMC") @TableField("FSDW_GAJGMC")
@ -104,6 +104,9 @@ public class DataAlarmAlarmInfo {
@TableField("Scence") @TableField("Scence")
private String Scence; private String Scence;
// 下发状态
private String distributionState;
@TableField(exist = false) @TableField(exist = false)
private List<DataAlarmYjzj> AlmZJList; private List<DataAlarmYjzj> AlmZJList;

8
src/main/java/com/biutag/supervision/pojo/entity/NegativeBlame.java

@ -121,6 +121,10 @@ public class NegativeBlame {
@TableField("handleResultName") @TableField("handleResultName")
private String handleResultName; private String handleResultName;
// 处理结果(其他)
@TableField("handleResultNameOther")
private String handleResultNameOther;
// 维权容错 // 维权容错
@TableField("protectRightsCode") @TableField("protectRightsCode")
private String protectRightsCode; private String protectRightsCode;
@ -204,6 +208,10 @@ public class NegativeBlame {
@TableField("leadHandleResultName") @TableField("leadHandleResultName")
private String leadHandleResultName; private String leadHandleResultName;
// 领导处理结果(其他)
@TableField("leadHandleResultNameOther")
private String leadHandleResultNameOther;
// 领导维权容错 // 领导维权容错
@TableField("leadProtectRightsName") @TableField("leadProtectRightsName")
private String leadProtectRightsName; private String leadProtectRightsName;

12
src/main/java/com/biutag/supervision/pojo/entity/RpcApply.java

@ -1,8 +1,8 @@
package com.biutag.supervision.pojo.entity; package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -15,10 +15,17 @@ public class RpcApply {
@TableId(value = "rpc_id") @TableId(value = "rpc_id")
private String rpcId; private String rpcId;
private String number;
// 申请时间 // 申请时间
@TableField("apply_date") @TableField("apply_date")
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private LocalDateTime applyDate; private LocalDateTime applyDate;
// 发生时间
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private LocalDateTime happenTime;
// 部门id // 部门id
@TableField("depart_id") @TableField("depart_id")
private String departId; private String departId;
@ -27,6 +34,9 @@ public class RpcApply {
@TableField("depart_name") @TableField("depart_name")
private String departName; private String departName;
private String applicantEmpName;
// 类型,1维权,2,抚慰,3容错 // 类型,1维权,2,抚慰,3容错
@TableField("type") @TableField("type")
private String type; private String type;

75
src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeVo.java

@ -1,7 +1,6 @@
package com.biutag.supervision.pojo.vo; package com.biutag.supervision.pojo.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -12,84 +11,116 @@ import java.time.LocalDateTime;
@Getter @Getter
public class ExportNegativeVo { public class ExportNegativeVo {
@ExcelProperty("样本源头编号") @ExcelProperty({"问题基本信息","问题编号"})
private String id;
@ExcelProperty({"问题基本信息","样本源头编号"})
private String originId; private String originId;
@ExcelProperty({"问题基本信息","涉及案件/警情编号"})
private String caseNumber;
// 问题发生时间 // 问题发生时间
@ExcelProperty("问题发生时间") @ExcelProperty({"问题基本信息","问题发生时间"})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime happenTime; private LocalDateTime happenTime;
// 问题发现时间 // 问题发现时间
@ExcelProperty("问题发现时间") @ExcelProperty({"问题基本信息","问题发现时间"})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime; private LocalDateTime discoveryTime;
// 问题来源 // 问题来源
@ExcelProperty("问题来源") @ExcelProperty({"问题基本信息","问题来源"})
private String problemSources; private String problemSources;
// 业务类别名称 // 业务类别名称
@ExcelProperty("业务类别") @ExcelProperty({"问题基本信息","业务类别"})
private String businessTypeName; private String businessTypeName;
// 涉嫌问题 JSON // 涉嫌问题 JSON
@ExcelProperty("涉嫌问题") @ExcelProperty({"问题基本信息","涉嫌问题"})
private String involveProblem; private String involveProblem;
// 简要描述 // 简要描述
@ExcelProperty("简要描述") @ExcelProperty({"问题基本信息","简要描述"})
private String thingDesc; private String thingDesc;
// 反映人姓名 // 反映人姓名
@ExcelProperty("投诉反映人") @ExcelProperty({"问题基本信息","投诉反映人"})
private String responderName; private String responderName;
// 联系电话 // 联系电话
@ExcelProperty("联系电话") @ExcelProperty({"问题基本信息","联系电话"})
private String contactPhone; private String contactPhone;
// 涉及警种名称 // 涉及警种名称
@ExcelProperty("涉及警种") @ExcelProperty({"问题基本信息","涉及警种"})
private String policeTypeName; private String policeTypeName;
// 涉及单位名称 // 涉及单位名称
@ExcelProperty("涉及单位") @ExcelProperty({"问题基本信息","涉及单位"})
private String involveDepartName; private String involveDepartName;
// 办理单位 二级 // 办理单位 二级
@ExcelProperty("办理单位(二级)") @ExcelProperty({"问题基本信息","办理单位(二级)"})
private String handleSecondDepartName; private String handleSecondDepartName;
// 办理单位 三级 // 办理单位 三级
@ExcelProperty("办理单位(三级)") @ExcelProperty({"问题基本信息","办理单位(三级)"})
private String handleThreeDepartName; private String handleThreeDepartName;
// 主办层级
@ExcelProperty({"流程配置","主办层级"})
private String hostLevel;
// 审批流程
@ExcelProperty({"流程配置","审批流程"})
private String approvalFlow;
// 办理时限
@ExcelProperty({"流程配置","办理时限"})
private String timeLimit;
// 核查情况 // 核查情况
@ExcelProperty("核查情况(是否属实)") @ExcelProperty({"核办情况","核查情况(是否属实)"})
private String checkStatusName; private String checkStatusName;
// 核查情况 // 核查情况
@ExcelProperty("核查情况说明") @ExcelProperty({"核办情况","核查情况说明"})
private String checkStatusDesc; private String checkStatusDesc;
// 是否整改 // 是否整改
@ExcelProperty("是否整改") @ExcelProperty({"核办情况","是否整改"})
private String isRectifyName; private String isRectifyName;
// 问题整改情况 // 问题整改情况
@ExcelProperty("整改情况") @ExcelProperty({"核办情况","整改情况"})
private String rectifyDesc; private String rectifyDesc;
// 追责对象
@ExcelProperty({"核办情况","追责对象"})
private String accountabilityTarget;
@ExcelProperty({"核办情况","涉及人员"})
private String blames;
@ExcelProperty({"核办情况","责任追责"})
private String handleResultName;
@ExcelProperty({"核办情况","涉及人数"})
private Integer blameNumber;
// 问题类型 // 问题类型
@ExcelProperty("问题类型") @ExcelProperty({"核办情况","问题类型"})
private String problemTypeList; private String problemTypeList;
// 办理状态 // 办理状态
@ExcelProperty("办理状态") @ExcelProperty({"","办理状态"})
private String processingStatus; private String processingStatus;
@ExcelProperty("办理超时情况") @ExcelProperty({"","办理超时情况"})
private String handleTime; private String handleTimeout;
} }

3
src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java

@ -189,5 +189,8 @@ public class NegativeQueryVo {
// 通报期数 // 通报期数
private String reportNumber; private String reportNumber;
// 整改情况
private String rectifyDesc;
} }

9
src/main/java/com/biutag/supervision/pojo/vo/VideoInspectionVo.java

@ -1,5 +1,6 @@
package com.biutag.supervision.pojo.vo; package com.biutag.supervision.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -28,4 +29,12 @@ public class VideoInspectionVo {
// 发生单位名称 // 发生单位名称
private String fsdwGajgmc; private String fsdwGajgmc;
// 发生单位代码
private String fsdwGajgjgdm;
// 下发状态
private String distributionState;
private String content;
} }

1
src/main/java/com/biutag/supervision/service/DataPetition12337Service.java

@ -120,6 +120,7 @@ public class DataPetition12337Service extends ServiceImpl<DataPetition12337Mappe
negativeDto.setContactPhone(item.getPhone()); negativeDto.setContactPhone(item.getPhone());
negativeDto.setThingDesc(item.getWjwfProject()); negativeDto.setThingDesc(item.getWjwfProject());
negativeDto.setThingFiles(distributeData.getThingFiles()); negativeDto.setThingFiles(distributeData.getThingFiles());
negativeDto.setDiscoveryTime(item.getDiscoverTime());
String involveDepartId; String involveDepartId;
String involveDepartName; String involveDepartName;
if (StrUtil.isNotBlank(item.getThirdDepartId())) { if (StrUtil.isNotBlank(item.getThirdDepartId())) {

2
src/main/java/com/biutag/supervision/service/HolidayService.java

@ -32,7 +32,7 @@ public class HolidayService extends ServiceImpl<HolidayMapper, Holiday> {
} }
Holiday holiday = getOne(new LambdaUpdateWrapper<Holiday>().eq(Holiday::getDate, date)); Holiday holiday = getOne(new LambdaUpdateWrapper<Holiday>().eq(Holiday::getDate, date));
if (Objects.isNull(holiday)) { if (Objects.isNull(holiday)) {
// log.error("节假日 {} 数据未找到", date); log.error("节假日 {} 数据未找到", date);
return false; return false;
} }
redisTemplate.opsForValue().set(String.format("holiday:%s", date), holiday.getFlag()); redisTemplate.opsForValue().set(String.format("holiday:%s", date), holiday.getFlag());

8
src/main/java/com/biutag/supervision/service/NegativeBlameService.java

@ -1,6 +1,7 @@
package com.biutag.supervision.service; package com.biutag.supervision.service;
import cn.hutool.core.bean.BeanUtil; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.pojo.domain.Blame; import com.biutag.supervision.pojo.domain.Blame;
@ -10,6 +11,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List; import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
@ -25,6 +27,12 @@ public class NegativeBlameService extends ServiceImpl<NegativeBlameMapper, Negat
Blame vo = new Blame(); Blame vo = new Blame();
BeanUtil.copyProperties(item, vo); BeanUtil.copyProperties(item, vo);
vo.setProblems(problemRelationService.list(negativeId, item.getBlameId())); vo.setProblems(problemRelationService.list(negativeId, item.getBlameId()));
if (StrUtil.isNotBlank(item.getHandleResultCode())) {
vo.setHandleResultCode(Arrays.stream(item.getHandleResultCode().split(",")).toList());
}
if (StrUtil.isNotBlank(item.getLeadHandleResultCode())) {
vo.setLeadHandleResultCode(Arrays.stream(item.getLeadHandleResultCode().split(",")).toList());
}
return vo; return vo;
}).toList(); }).toList();
} }

2
src/main/java/com/biutag/supervision/service/NegativeQueryService.java

@ -51,7 +51,7 @@ public class NegativeQueryService {
} }
} }
queryWrapper.and(StrUtil.isNotBlank(param.getOriginId()), (qw) -> { queryWrapper.and(StrUtil.isNotBlank(param.getOriginId()), (qw) -> {
qw.like(Negative::getOriginId, param.getOriginId()).or().eq(Negative::getId, param.getOriginId()); qw.like(Negative::getOriginId, param.getOriginId()).or().like(Negative::getId, param.getOriginId());
}) })
.in(!param.getProcessingStatus().isEmpty(), Negative::getProcessingStatus, param.getProcessingStatus()) .in(!param.getProcessingStatus().isEmpty(), Negative::getProcessingStatus, param.getProcessingStatus())
.eq(StrUtil.isNotBlank(param.getFlowKey()), Negative::getFlowKey, param.getFlowKey()) .eq(StrUtil.isNotBlank(param.getFlowKey()), Negative::getFlowKey, param.getFlowKey())

16
src/main/java/com/biutag/supervision/service/NegativeService.java

@ -35,12 +35,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -96,13 +94,13 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
if (StrUtil.isNotBlank(negative.getHandlePolices())) { if (StrUtil.isNotBlank(negative.getHandlePolices())) {
vo.setHandlePolices(JSON.parseArray(negative.getHandlePolices(), VerifyData.HandlePolice.class)); vo.setHandlePolices(JSON.parseArray(negative.getHandlePolices(), VerifyData.HandlePolice.class));
} }
List<Blame> blameVos = blameService.list(id); List<Blame> blameList = blameService.list(id);
vo.setBlames(blameVos); vo.setBlames(blameList);
if (!blameVos.isEmpty()) { if (!blameList.isEmpty()) {
List<VerifyData.BlameLeader> blameLeaders = blameVos.stream().map(Blame::getLeadIdCode).filter(StrUtil::isNotBlank).collect(Collectors.toSet()) List<VerifyData.BlameLeader> blameLeaders = blameList.stream().map(Blame::getLeadIdCode).filter(StrUtil::isNotBlank).collect(Collectors.toSet())
.stream().map(leaderIdCode -> { .stream().map(leaderIdCode -> {
VerifyData.BlameLeader blameLeader = new VerifyData.BlameLeader(); VerifyData.BlameLeader blameLeader = new VerifyData.BlameLeader();
List<Blame> blames = blameVos.stream().filter(blameObj -> leaderIdCode.equals(blameObj.getLeadIdCode())).toList(); List<Blame> blames = blameList.stream().filter(blameObj -> leaderIdCode.equals(blameObj.getLeadIdCode())).toList();
// 取第一个 // 取第一个
Blame blame = blames.get(0); Blame blame = blames.get(0);
BeanUtil.copyProperties(blame, blameLeader); BeanUtil.copyProperties(blame, blameLeader);

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

@ -2,6 +2,7 @@ package com.biutag.supervision.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -14,10 +15,7 @@ import com.biutag.supervision.mapper.NegativeTaskMapper;
import com.biutag.supervision.pojo.dto.NegativeDto; import com.biutag.supervision.pojo.dto.NegativeDto;
import com.biutag.supervision.pojo.dto.NegativeImportDistributeDto; import com.biutag.supervision.pojo.dto.NegativeImportDistributeDto;
import com.biutag.supervision.pojo.dto.NegativeImportDto; import com.biutag.supervision.pojo.dto.NegativeImportDto;
import com.biutag.supervision.pojo.entity.NegativeProblemRelation; import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.entity.NegativeTask;
import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.pojo.entity.SupDictData;
import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel; import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel;
import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.NegativeTaskQueryParam; import com.biutag.supervision.pojo.param.NegativeTaskQueryParam;
@ -89,12 +87,16 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
private final NegativeProblemRelationService negativeProblemRelationService; private final NegativeProblemRelationService negativeProblemRelationService;
private final NegativeBlameService negativeBlameService;
@Async @Async
public void exportExcel(List<NegativeQueryVo> data, String negativeTaskId) { public void exportExcel(List<NegativeQueryVo> data, String negativeTaskId) {
List<SupDictData> suspectProblem = dictDataService.listByDictType("suspectProblem"); List<SupDictData> suspectProblem = dictDataService.listByDictType("suspectProblem");
List<ExportNegativeVo> list = new ArrayList<>(); List<ExportNegativeVo> list = new ArrayList<>();
if (!data.isEmpty()) { if (!data.isEmpty()) {
List<NegativeProblemRelation> negativeProblemRelations = negativeProblemRelationService.list(new LambdaQueryWrapper<NegativeProblemRelation>().in(NegativeProblemRelation::getNegativeId, data.stream().map(NegativeQueryVo::getId).toList())); List<NegativeProblemRelation> negativeProblemRelations = negativeProblemRelationService.list(new LambdaQueryWrapper<NegativeProblemRelation>().in(NegativeProblemRelation::getNegativeId, data.stream().map(NegativeQueryVo::getId).toList()));
List<NegativeBlame> blames = negativeBlameService.list(new LambdaQueryWrapper<NegativeBlame>().in(NegativeBlame::getNegativeId, data.stream().map(NegativeQueryVo::getId).toList()));
list = data.stream().map(item -> { list = data.stream().map(item -> {
ExportNegativeVo vo = new ExportNegativeVo(); ExportNegativeVo vo = new ExportNegativeVo();
BeanUtils.copyProperties(item, vo); BeanUtils.copyProperties(item, vo);
@ -113,6 +115,24 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
return String.format("%s / %s / %s", problem.getOneLevelContent(), problem.getTwoLevelContent(), problem.getTwoLevelContent()); return String.format("%s / %s / %s", problem.getOneLevelContent(), problem.getTwoLevelContent(), problem.getTwoLevelContent());
}).collect(Collectors.joining("、")); }).collect(Collectors.joining("、"));
vo.setProblemTypeList(problemTypeList); vo.setProblemTypeList(problemTypeList);
// 超时情况
vo.setHandleTimeout(getHandleTimeout(item.getHandleTimeout()));
// 办理时限
vo.setTimeLimit(TimeLimitEnum.getLabel(item.getTimeLimit()));
// 主办层级
vo.setHostLevel(HostLevelEnums.getLabel(item.getHostLevel()));
// 审批流程
vo.setApprovalFlow(ApprovalFlowEnum.getLabel(item.getApprovalFlow()));
// 追责对象
vo.setAccountabilityTarget(AccountabilityTargetEnum.getLabel(item.getAccountabilityTarget()));
// 涉及人员
List<NegativeBlame> blameList = blames.stream().filter(blame -> blame.getNegativeId().equals(item.getId())).toList();
String blameStr = blameList.stream()
.map(blame -> String.format("(%s)%s-%s", BlameType.personal.name().equals(blame.getType())?"个人": "单位", blame.getBlameName(), blame.getBlameEmpNo()))
.collect(Collectors.joining("、"));
vo.setBlames(blameStr);
vo.setBlameNumber(blameList.size());
vo.setHandleResultName(blameList.stream().map(NegativeBlame::getHandleResultName).collect(Collectors.joining("、")));
return vo; return vo;
}).toList(); }).toList();
} }
@ -127,6 +147,26 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
} }
private String getHandleTimeout(Long time) {
if (time == null || time <= 0) {
return "未超时";
}
// 秒
if (time < 60) {
return time + "秒";
}
// 分钟
if (time < 3600) {
return (int) Math.floor((double) time / 60) + "分" + (time % 60) + "秒";
}
// 小时
if (time < 86400) {
return String.format("%s时%s分", (int) Math.floor((double) time / 3600), time % 3600 / 60);
}
// 天
return String.format("%s天%s时", (int) Math.floor((double) time / 86400), time % 86400 / 3600);
}
/** /**
* 批量下发 * 批量下发
* @param distributeData * @param distributeData

2
src/main/java/com/biutag/supervision/service/NegativeWorkService.java

@ -45,7 +45,7 @@ public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, Negativ
.in("w.problem_sources_code", user.getAuthSources()) .in("w.problem_sources_code", user.getAuthSources())
.eq("w.status", workStatus) .eq("w.status", workStatus)
.and(StrUtil.isNotBlank(param.getOriginId()), (qw) -> { .and(StrUtil.isNotBlank(param.getOriginId()), (qw) -> {
qw.like("n.originId", param.getOriginId()).or().eq("n.id", param.getOriginId()); qw.like("n.originId", param.getOriginId()).or().like("n.id", param.getOriginId());
}) })
.in(CollectionUtil.isNotEmpty(param.getProblemSourcesCode()), "n.problemSourcesCode", param.getProblemSourcesCode()) .in(CollectionUtil.isNotEmpty(param.getProblemSourcesCode()), "n.problemSourcesCode", param.getProblemSourcesCode())
.eq(StrUtil.isNotBlank(param.getBusinessTypeCode()), "n.businessTypeCode", param.getBusinessTypeCode()) .eq(StrUtil.isNotBlank(param.getBusinessTypeCode()), "n.businessTypeCode", param.getBusinessTypeCode())

1
src/main/resources/jitMessage.properties

@ -2,4 +2,3 @@
authURL=http://172.16.22.243:6180/MessageService authURL=http://172.16.22.243:6180/MessageService
#\u5e94\u7528\u6807\u8bc6,\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff0c\u4e0e\u7f51\u5173\u4e2d\u914d\u7f6e\u7684\u5e94\u7528\u6807\u8bc6\u4e00\u81f4 #\u5e94\u7528\u6807\u8bc6,\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff0c\u4e0e\u7f51\u5173\u4e2d\u914d\u7f6e\u7684\u5e94\u7528\u6807\u8bc6\u4e00\u81f4
appId=testApp2 appId=testApp2

5
src/main/resources/mapper/DataAlarmDispositionInfoMapper.xml

@ -9,7 +9,10 @@
d.systemKeyName system_Key_Name, d.systemKeyName system_Key_Name,
d.title, d.title,
i.rqsj, i.rqsj,
i.FSDW_GAJGMC i.fsdw_gajgmc,
i.fsdw_gajgjgdm,
i.distribution_state,
i.dcyj_jyqk content
FROM FROM
data_alarm_alarm_info i data_alarm_alarm_info i
LEFT JOIN data_alarm_disposition_info d ON d.alarm_info_id = i.id LEFT JOIN data_alarm_disposition_info d ON d.alarm_info_id = i.id

BIN
src/main/resources/static/templates/信访投诉数据台账(模板).xlsx

Binary file not shown.
Loading…
Cancel
Save