冀北干扰源常态化管理接口
This commit is contained in:
@@ -33,6 +33,7 @@ import com.njcn.web.factory.PageFactory;
|
|||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -202,4 +203,14 @@ public class BpmProcessInstanceController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceId, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceId, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除流程实例(会删除已经审核的流程慎用)")
|
||||||
|
@GetMapping(value = "/deleteInstance")
|
||||||
|
public HttpResult delete(@ApiParam(value = "流程实例ID", required = true) @RequestParam String instanceIds) {
|
||||||
|
String methodDescribe = getMethodDescribe("delete");
|
||||||
|
processInstanceService.delete(instanceIds,"测试删除");
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.njcn.bpm.listener.business;
|
||||||
|
|
||||||
|
import com.njcn.bpm.listener.BpmProcessInstanceStatusEvent;
|
||||||
|
import com.njcn.bpm.listener.BpmProcessInstanceStatusEventListener;
|
||||||
|
import com.njcn.supervision.api.UserReportFeignClient;
|
||||||
|
import com.njcn.supervision.api.UserReportNormalFeignClient;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class BpmUserReportNormalStatusListener extends BpmProcessInstanceStatusEventListener {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserReportNormalFeignClient userReportNormalFeignClient;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProcessDefinitionKey() {
|
||||||
|
return "user_go_net";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onEvent(BpmProcessInstanceStatusEvent event) {
|
||||||
|
userReportNormalFeignClient.updateUserReportNormalStatus(event.getBusinessKey(), event.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -146,4 +146,11 @@ public interface IBpmProcessInstanceService {
|
|||||||
*/
|
*/
|
||||||
void updateProcessInstanceReject(String id, String reason);
|
void updateProcessInstanceReject(String id, String reason);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用于测试过程删除流程,正式环境慎用
|
||||||
|
* @author cdf
|
||||||
|
* @date 2024/5/20
|
||||||
|
*/
|
||||||
|
void delete(String id, String reason);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -316,8 +316,35 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
|
|||||||
BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, processInstance, BpmProcessInstanceStatusEnum.REJECT.getStatus()));
|
BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, processInstance, BpmProcessInstanceStatusEnum.REJECT.getStatus()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteProcessInstance(String id, String reason) {
|
public void deleteProcessInstance(String id, String reason) {
|
||||||
runtimeService.deleteProcessInstance(id, reason);
|
runtimeService.deleteProcessInstance(id, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void delete(String instanceId, String deleteReason) {
|
||||||
|
|
||||||
|
// 查询历史数据
|
||||||
|
HistoricProcessInstance historicProcessInstance = getHistoricProcessInstanceById(instanceId);
|
||||||
|
if (historicProcessInstance.getEndTime() != null) {
|
||||||
|
historyService.deleteHistoricProcessInstance(historicProcessInstance.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 删除流程实例
|
||||||
|
runtimeService.deleteProcessInstance(instanceId, deleteReason);
|
||||||
|
// 删除历史流程实例
|
||||||
|
historyService.deleteHistoricProcessInstance(instanceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public HistoricProcessInstance getHistoricProcessInstanceById(String processInstanceId) {
|
||||||
|
HistoricProcessInstance historicProcessInstance =
|
||||||
|
historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||||
|
if (Objects.isNull(historicProcessInstance)) {
|
||||||
|
throw new BusinessException("流程实例不存在: " + processInstanceId);
|
||||||
|
}
|
||||||
|
return historicProcessInstance;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.njcn.supervision.api;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.supervision.api.fallback.UserReportNoramlFeignClientFallbackFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程实例 Api 接口
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
*/
|
||||||
|
@FeignClient(value = ServerInfo.SUPERVISION, path = "/userReportNormal", fallbackFactory = UserReportNoramlFeignClientFallbackFactory.class)
|
||||||
|
public interface UserReportNormalFeignClient {
|
||||||
|
|
||||||
|
@GetMapping("/updateUserReportNormalStatus")
|
||||||
|
HttpResult<Object> updateUserReportNormalStatus(@RequestParam("businessKey") String businessKey, @RequestParam("status")Integer status);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.njcn.supervision.api.fallback;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.supervision.api.UserReportNormalFeignClient;
|
||||||
|
import com.njcn.supervision.utils.SupervisionEnumUtil;
|
||||||
|
import feign.hystrix.FallbackFactory;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author denghuajun
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2022/3/16
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class UserReportNoramlFeignClientFallbackFactory implements FallbackFactory<UserReportNormalFeignClient> {
|
||||||
|
@Override
|
||||||
|
public UserReportNormalFeignClient create(Throwable throwable) {
|
||||||
|
//判断抛出异常是否为解码器抛出的业务异常
|
||||||
|
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||||
|
if (throwable.getCause() instanceof BusinessException) {
|
||||||
|
BusinessException businessException = (BusinessException) throwable.getCause();
|
||||||
|
exceptionEnum = SupervisionEnumUtil.getExceptionEnum(businessException.getResult());
|
||||||
|
}
|
||||||
|
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||||
|
return new UserReportNormalFeignClient() {
|
||||||
|
@Override
|
||||||
|
public HttpResult<Object> updateUserReportNormalStatus(String businessKey, Integer status) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}", "更新用户数据流程状态", throwable.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.njcn.supervision.pojo.param.user;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 干扰源用户常态化管理
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2024-05-17
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class UserReportNormalParam extends BaseParam {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联干扰源用户表
|
||||||
|
*/
|
||||||
|
private String userReportId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型0:方案审查 1:治理工程
|
||||||
|
*/
|
||||||
|
private Boolean type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报告存放路径
|
||||||
|
*/
|
||||||
|
private String reportUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1:审批中;2:审批通过;3:审批不通过;4:已取消
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty("发起人自选审批人 Map")
|
||||||
|
private Map<String, List<String>> startUserSelectAssignees;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.njcn.supervision.pojo.po.user;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 干扰源用户常态化管理
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2024-05-17
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@TableName("supervision_user_report_normal")
|
||||||
|
public class UserReportNormalPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联干扰源用户表
|
||||||
|
*/
|
||||||
|
private String userReportId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型0:方案审查 1:治理工程
|
||||||
|
*/
|
||||||
|
private Boolean type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报告存放路径
|
||||||
|
*/
|
||||||
|
private String reportUrl;
|
||||||
|
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1:审批中;2:审批通过;3:审批不通过;4:已取消
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
private Integer state;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -12,12 +12,13 @@ import com.njcn.supervision.pojo.po.user.UserReportSensitivePO;
|
|||||||
import com.njcn.supervision.pojo.po.user.UserReportSubstationPO;
|
import com.njcn.supervision.pojo.po.user.UserReportSubstationPO;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Date: 2024/4/25 10:07【需求编号】
|
* Date: 2024/4/25 10:07【需求编号】
|
||||||
*
|
*
|
||||||
@@ -141,4 +142,18 @@ public class UserReportVO {
|
|||||||
private UserReportSensitivePO userReportSensitivePO;
|
private UserReportSensitivePO userReportSensitivePO;
|
||||||
|
|
||||||
private UserReportSubstationPO userReportSubstationPO;
|
private UserReportSubstationPO userReportSubstationPO;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public static class UserReportGoNetVO extends UserReportVO{
|
||||||
|
/**
|
||||||
|
* 入网评估报告和治理报告的文件路径名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "入网评估报告和治理报告的文件路径名")
|
||||||
|
private String otherReport;
|
||||||
|
|
||||||
|
private String userReportId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package com.njcn.supervision.controller.user;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.OperateType;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.supervision.pojo.param.user.UserReportNormalParam;
|
||||||
|
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
||||||
|
import com.njcn.supervision.pojo.vo.user.UserReportVO;
|
||||||
|
import com.njcn.supervision.service.user.IUserReportNormalService;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 干扰源用户常态化管理 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2024-05-17
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("userReportNormal")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class UserReportNormalController extends BaseController {
|
||||||
|
|
||||||
|
private final IUserReportNormalService iUserReportNormalService;
|
||||||
|
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD)
|
||||||
|
@PostMapping("/addUserReportNormal")
|
||||||
|
@ApiOperation("新增干扰源常态化管理")
|
||||||
|
@ApiImplicitParam(name = "userReportNormalParam", value = "实体参数", required = true)
|
||||||
|
public HttpResult<String> addUserReport(@RequestBody @Validated UserReportNormalParam userReportNormalParam){
|
||||||
|
String methodDescribe = getMethodDescribe("addUserReport");
|
||||||
|
String userReportId = iUserReportNormalService.addUserNormal(userReportNormalParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userReportId, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/userReportGoNetPage")
|
||||||
|
@ApiOperation("分页查询干扰源常态化页面")
|
||||||
|
@ApiImplicitParam(name = "userReportGoNetPage", value = "实体参数", required = true)
|
||||||
|
public HttpResult<Page<UserReportVO.UserReportGoNetVO>> userReportGoNetPage(@RequestBody @Validated UserReportNormalParam userReportNormalParam){
|
||||||
|
String methodDescribe = getMethodDescribe("userReportGoNetPage");
|
||||||
|
Page<UserReportVO.UserReportGoNetVO> userReportId = iUserReportNormalService.userReportGoNetPage(userReportNormalParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userReportId, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@GetMapping("/userReportGoNetById")
|
||||||
|
@ApiOperation("查询干扰源常态化详情")
|
||||||
|
@ApiImplicitParam(name = "userReportGoNetById", value = "实体参数", required = true)
|
||||||
|
public HttpResult<UserReportVO.UserReportGoNetVO> userReportGoNetById(@RequestParam("id")String id){
|
||||||
|
String methodDescribe = getMethodDescribe("userReportGoNetById");
|
||||||
|
UserReportVO.UserReportGoNetVO userReport = iUserReportNormalService.userReportGoNetById(id);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userReport, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE)
|
||||||
|
@GetMapping("/updateUserReportNormalStatus")
|
||||||
|
@ApiOperation("修改业务审核状态")
|
||||||
|
@ApiImplicitParam(name = "userReportGoNetById", value = "实体参数", required = true)
|
||||||
|
public HttpResult<Object> updateUserReportNormalStatus(@RequestParam("businessKey") String businessKey, @RequestParam("status")Integer status){
|
||||||
|
String methodDescribe = getMethodDescribe("updateUserReportNormalStatus");
|
||||||
|
iUserReportNormalService.updateUserReportNormalStatus(businessKey,status);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.njcn.supervision.mapper.user;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.supervision.pojo.po.user.UserReportNormalPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 干扰源用户常态化管理 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2024-05-17
|
||||||
|
*/
|
||||||
|
public interface UserReportNormalMapper extends BaseMapper<UserReportNormalPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.supervision.device.mapper.UserReportNormalMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.njcn.supervision.service.user;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.supervision.pojo.param.user.UserReportNormalParam;
|
||||||
|
import com.njcn.supervision.pojo.po.user.UserReportNormalPO;
|
||||||
|
import com.njcn.supervision.pojo.vo.user.UserReportVO;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 干扰源用户常态化管理 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2024-05-17
|
||||||
|
*/
|
||||||
|
public interface IUserReportNormalService extends IService<UserReportNormalPO> {
|
||||||
|
|
||||||
|
String addUserNormal(UserReportNormalParam userReportNormalParam);
|
||||||
|
|
||||||
|
|
||||||
|
Page<UserReportVO.UserReportGoNetVO> userReportGoNetPage(UserReportNormalParam userReportNormalParam);
|
||||||
|
|
||||||
|
|
||||||
|
UserReportVO.UserReportGoNetVO userReportGoNetById(String id);
|
||||||
|
|
||||||
|
|
||||||
|
void updateUserReportNormalStatus(String businessKey,Integer status);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
package com.njcn.supervision.service.user.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.bpm.api.BpmProcessFeignClient;
|
||||||
|
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
|
||||||
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
|
import com.njcn.supervision.enums.FlowStatusEnum;
|
||||||
|
import com.njcn.supervision.mapper.user.UserReportNormalMapper;
|
||||||
|
import com.njcn.supervision.pojo.param.user.UserReportNormalParam;
|
||||||
|
import com.njcn.supervision.pojo.po.user.UserReportNormalPO;
|
||||||
|
import com.njcn.supervision.pojo.po.user.UserReportPO;
|
||||||
|
import com.njcn.supervision.pojo.vo.user.UserReportVO;
|
||||||
|
import com.njcn.supervision.service.user.IUserReportNormalService;
|
||||||
|
import com.njcn.supervision.service.user.UserReportPOService;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.api.UserFeignClient;
|
||||||
|
import com.njcn.user.pojo.po.User;
|
||||||
|
import com.njcn.web.factory.PageFactory;
|
||||||
|
import com.njcn.web.utils.RequestUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 干扰源用户常态化管理 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2024-05-17
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class UserReportNormalServiceImpl extends ServiceImpl<UserReportNormalMapper, UserReportNormalPO> implements IUserReportNormalService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户信息建档对应的流程定义 KEY
|
||||||
|
*/
|
||||||
|
public static final String PROCESS_KEY = "user_go_net";
|
||||||
|
|
||||||
|
|
||||||
|
private final BpmProcessFeignClient bpmProcessFeignClient;
|
||||||
|
|
||||||
|
private final UserReportPOService userReportPOService;
|
||||||
|
|
||||||
|
|
||||||
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
|
||||||
|
private final UserFeignClient userFeignClient;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public String addUserNormal(UserReportNormalParam userReportNormalParam) {
|
||||||
|
UserReportNormalPO userReportNormalPO = new UserReportNormalPO();
|
||||||
|
BeanUtil.copyProperties(userReportNormalParam, userReportNormalPO);
|
||||||
|
userReportNormalPO.setState(DataStateEnum.ENABLE.getCode());
|
||||||
|
userReportNormalPO.setStatus(FlowStatusEnum.AUDIT.getCode());
|
||||||
|
this.save(userReportNormalPO);
|
||||||
|
// 发起 BPM 流程
|
||||||
|
Map<String, Object> processInstanceVariables = new HashMap<>();
|
||||||
|
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
|
||||||
|
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
|
||||||
|
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportNormalPO.getId());
|
||||||
|
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportNormalParam.getStartUserSelectAssignees());
|
||||||
|
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
|
||||||
|
String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportNormalPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
|
||||||
|
// 将工作流的编号,更新到流程单中
|
||||||
|
userReportNormalPO.setProcessInstanceId(processInstanceId);
|
||||||
|
this.baseMapper.updateById(userReportNormalPO);
|
||||||
|
return userReportNormalPO.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<UserReportVO.UserReportGoNetVO> userReportGoNetPage(UserReportNormalParam userReportNormalParam) {
|
||||||
|
Page<UserReportVO.UserReportGoNetVO> pageResult = new Page<>();
|
||||||
|
|
||||||
|
|
||||||
|
List<String> deptIds = deptFeignClient.getDepSonIdtByDeptId(RequestUtil.getDeptIndex()).getData();
|
||||||
|
List<User> userList = userFeignClient.getUserInfoByDeptIds(deptIds).getData();
|
||||||
|
List<String> userIds = userList.stream().map(User::getId).distinct().collect(Collectors.toList());
|
||||||
|
if(CollUtil.isEmpty(userIds)){
|
||||||
|
return pageResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<UserReportNormalPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.orderByDesc(UserReportNormalPO::getCreateTime)
|
||||||
|
.eq(UserReportNormalPO::getType,userReportNormalParam.getType())
|
||||||
|
.in(UserReportNormalPO::getCreateBy, userIds)
|
||||||
|
.eq(UserReportNormalPO::getUserReportId,userReportNormalParam.getUserReportId());
|
||||||
|
Page<UserReportNormalPO> page = this.page(new Page<>(PageFactory.getPageNum(userReportNormalParam), PageFactory.getPageSize(userReportNormalParam)), lambdaQueryWrapper);
|
||||||
|
if (CollUtil.isNotEmpty(page.getRecords())) {
|
||||||
|
List<String> ids = page.getRecords().stream().map(UserReportNormalPO::getUserReportId).distinct().collect(Collectors.toList());
|
||||||
|
List<UserReportPO> userReportPOList = userReportPOService.list(new LambdaQueryWrapper<UserReportPO>().in(UserReportPO::getId, ids));
|
||||||
|
Map<String, UserReportPO> map = userReportPOList.stream().collect(Collectors.toMap(UserReportPO::getId, Function.identity()));
|
||||||
|
|
||||||
|
List<UserReportVO.UserReportGoNetVO> temList = new ArrayList<>();
|
||||||
|
page.getRecords().forEach(item -> {
|
||||||
|
UserReportVO.UserReportGoNetVO vo = new UserReportVO.UserReportGoNetVO();
|
||||||
|
UserReportPO userReportPO = map.get(item.getUserReportId());
|
||||||
|
BeanUtil.copyProperties(userReportPO,vo);
|
||||||
|
vo.setId(item.getId());
|
||||||
|
vo.setUserReportId(item.getUserReportId());
|
||||||
|
vo.setOtherReport(item.getReportUrl());
|
||||||
|
vo.setProcessInstanceId(item.getProcessInstanceId());
|
||||||
|
vo.setCreateTime(item.getCreateTime());
|
||||||
|
vo.setStatus(item.getStatus());
|
||||||
|
vo.setReporter(item.getCreateBy());
|
||||||
|
temList.add(vo);
|
||||||
|
});
|
||||||
|
BeanUtil.copyProperties(page,pageResult);
|
||||||
|
pageResult.setRecords(temList);
|
||||||
|
}
|
||||||
|
return pageResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserReportVO.UserReportGoNetVO userReportGoNetById(String id) {
|
||||||
|
UserReportNormalPO userReportNormalPO = this.getById(id);
|
||||||
|
UserReportPO userReportPO = userReportPOService.getById(userReportNormalPO.getUserReportId());
|
||||||
|
UserReportVO.UserReportGoNetVO vo = new UserReportVO.UserReportGoNetVO();
|
||||||
|
BeanUtil.copyProperties(userReportPO,vo);
|
||||||
|
BeanUtil.copyProperties(userReportNormalPO,vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUserReportNormalStatus(String businessKey, Integer status) {
|
||||||
|
this.update(new UpdateWrapper<UserReportNormalPO>().lambda().set(UserReportNormalPO::getStatus,status).eq(UserReportNormalPO::getId,businessKey));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user