冀北干扰源常态化管理接口
This commit is contained in:
@@ -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