冀北干扰源常态化管理接口

This commit is contained in:
cdf
2024-05-21 08:47:36 +08:00
parent f03fc1d1cf
commit ed1241a192
14 changed files with 537 additions and 3 deletions

View File

@@ -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);
}
}

View File

@@ -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> {
}

View File

@@ -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>

View File

@@ -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);
}

View File

@@ -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));
}
}