新增接口

This commit is contained in:
hzj
2024-05-16 18:53:25 +08:00
parent b1f9c45e4a
commit 165b1dc69d
23 changed files with 960 additions and 31 deletions

View File

@@ -41,6 +41,11 @@
<artifactId>pq-device-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-swagger</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>

View File

@@ -1,6 +1,7 @@
package com.njcn.supervision.controller.device;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -8,12 +9,14 @@ 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.device.SupervisionDevMainReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport;
import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO;
import com.njcn.supervision.service.device.SupervisionDevMainReportPOService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -81,4 +84,40 @@ public class DeVReportManageController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@GetMapping("/updateStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更改表单状态")
public HttpResult<Object> updateStatus(String businessKey,Integer status) {
String methodDescribe = getMethodDescribe("updateStatus");
supervisionDevMainReportPOService.updateStatus(businessKey,status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消设备录入")
@ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true)
public HttpResult<String> cancelDevMainReport(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) {
String methodDescribe = getMethodDescribe("cancelDevMainReport");
String id = supervisionDevMainReportPOService.cancelDevMainReport(cancelReqVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/getDeviceList")
@ApiOperation("获取监测点绑定设备列表")
public HttpResult<List<SupervisionTempDeviceReport>> getDeviceList() {
String methodDescribe = getMethodDescribe("getDeviceList");
List<SupervisionTempDeviceReport> id = supervisionDevMainReportPOService.getDeviceList();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryDeviceDetail")
@ApiOperation("查询设备详情")
public HttpResult<SupervisionDevMainReportVO> queryDeviceDetail(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("queryDeviceDetail");
SupervisionDevMainReportVO vo = supervisionDevMainReportPOService.querySurveyDetail(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
}
}

View File

@@ -0,0 +1,81 @@
package com.njcn.supervision.controller.device;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
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.device.SupervisionTempLineReportParam;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO;
import com.njcn.supervision.service.device.SupervisionTempLineReportService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 干扰源用户管理
*
* @author qijian
* @version 1.0.0
* @createTime 2022/11/11 - 9:20
*/
@Slf4j
@RestController
@RequestMapping("/tempLine")
@Api(tags = "电能质量临时监测点管理")
@AllArgsConstructor
public class TempLineController extends BaseController {
private final SupervisionTempLineReportService supervisionTempLineReportService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD)
@PostMapping("/add")
@ApiOperation("新增临时监测点管理")
@ApiImplicitParam(name = "supervisionTempLineReportParam", value = "实体参数", required = true)
public HttpResult<String> addTempLineReport(@RequestBody @Validated SupervisionTempLineReportParam supervisionTempLineReportParam){
String methodDescribe = getMethodDescribe("addTempLineReport");
String tempLineId = supervisionTempLineReportService.addTempLineReport(supervisionTempLineReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, tempLineId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/list")
@ApiOperation("分页查询当前用户能看到的接入监测装置设备")
@ApiImplicitParam(name = "supervisionTempLineReportQuery", value = "参数", required = true)
public HttpResult<Page<SupervisionTempLineReportVO>> getTempLineReport(@RequestBody @Validated SupervisionTempLineReportParam.SupervisionTempLineReportQuery supervisionTempLineReportQuery) {
String methodDescribe = getMethodDescribe("getTempLineReport");
Page<SupervisionTempLineReportVO> out = supervisionTempLineReportService.getTempLineReport(supervisionTempLineReportQuery);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@GetMapping("/updateStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更改表单状态")
public HttpResult<Object> updateStatus(String businessKey,Integer status) {
String methodDescribe = getMethodDescribe("updateStatus");
supervisionTempLineReportService.updateStatus(businessKey,status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消设备录入")
@ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true)
public HttpResult<String> cancelTempLineReport(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) {
String methodDescribe = getMethodDescribe("cancelTempLineReport");
String id = supervisionTempLineReportService.cancelTempLineReport(cancelReqVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe);
}
}

View File

@@ -1,7 +1,11 @@
package com.njcn.supervision.mapper.device;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO;
import org.apache.ibatis.annotations.Param;
/**
*
@@ -12,4 +16,5 @@ import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
* @version V1.0.0
*/
public interface SupervisionTempLineReportMapper extends BaseMapper<SupervisionTempLineReport> {
Page<SupervisionTempLineReportVO> page(Page<Object> objectPage, @Param("ew") QueryWrapper<SupervisionTempLineReport> quitRunningDeviceVOQueryWrapper);
}

View File

@@ -35,4 +35,11 @@
point_nature, is_statistical, Obj_Name, Power_Substation_Name, is_grid_connection_point,
operation_status, main_wiring_diagram, voltage_deviation_upper_limit, voltage_deviation_lower_limit
</sql>
<select id="page" resultType="com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO">
SELECT
*
FROM supervision_temp_line_report supervision_temp_line_report
WHERE ${ew.sqlSegment}
</select>
</mapper>

View File

@@ -2,8 +2,10 @@ package com.njcn.supervision.service.device;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.supervision.pojo.param.device.SupervisionDevMainReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionDevMainReportPO;
import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport;
import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO;
import java.util.List;
@@ -26,4 +28,12 @@ public interface SupervisionDevMainReportPOService extends IService<SupervisionD
Boolean removeDevReport(List<String> ids);
Page<SupervisionDevMainReportVO> getDevReport(SupervisionDevMainReportParam.SupervisionDevMainReportQuery supervisionDevMainReportQuery);
void updateStatus(String businessKey, Integer status);
String cancelDevMainReport(BpmProcessInstanceCancelParam cancelReqVO);
List<SupervisionTempDeviceReport> getDeviceList();
SupervisionDevMainReportVO querySurveyDetail(String id);
}

View File

@@ -1,8 +1,13 @@
package com.njcn.supervision.service.device;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.baomidou.mybatisplus.extension.service.IService;
/**
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO;
/**
*
* Description:
* Date: 2024/5/11 14:07【需求编号】
@@ -13,4 +18,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface SupervisionTempLineReportService extends IService<SupervisionTempLineReport>{
String addTempLineReport(SupervisionTempLineReportParam supervisionTempLineReportParam);
Page<SupervisionTempLineReportVO> getTempLineReport(SupervisionTempLineReportParam.SupervisionTempLineReportQuery supervisionTempLineReportQuery);
void updateStatus(String businessKey, Integer status);
String cancelTempLineReport(BpmProcessInstanceCancelParam cancelReqVO);
}

View File

@@ -8,28 +8,32 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.enums.BpmProcessInstanceStatusEnum;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.mapper.device.SupervisionDevMainReportPOMapper;
import com.njcn.supervision.pojo.param.device.SupervisionDevMainReportParam;
import com.njcn.supervision.pojo.param.device.SupervisionTempDeviceReportParam;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionDevMainReportPO;
import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO;
import com.njcn.supervision.service.device.SupervisionDevMainReportPOService;
import com.njcn.supervision.service.device.SupervisionTempDeviceReportService;
import com.njcn.supervision.service.device.SupervisionTempLineReportService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
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;
@@ -56,19 +60,19 @@ public class SupervisionDevMainReportPOServiceImpl extends ServiceImpl<Supervisi
private final BpmProcessFeignClient bpmProcessFeignClient;
private final SupervisionTempDeviceReportService supervisionTempDeviceReportService;
private final SupervisionTempLineReportService supervisionTempLineReportService;
private final DeptFeignClient deptFeignClient;
private final UserFeignClient userFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
public String addDevReport(SupervisionDevMainReportParam supervisionDevMainReportParam) {
//判断干扰源用户是否绑定
checkUserId(supervisionDevMainReportParam, false);
//判断干扰源用户是否绑定 todo 修改校验终端名称
// checkUserId(supervisionDevMainReportParam, false);
SupervisionDevMainReportPO supervisionDevMainReportPO = new SupervisionDevMainReportPO();
BeanUtils.copyProperties(supervisionDevMainReportParam, supervisionDevMainReportPO);
supervisionDevMainReportPO.setState(DataStateEnum.ENABLE.getCode());
supervisionDevMainReportPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(supervisionDevMainReportPO);
String id = supervisionDevMainReportPO.getId();
//存储临时终端信息
@@ -78,11 +82,11 @@ public class SupervisionDevMainReportPOServiceImpl extends ServiceImpl<Supervisi
supervisionTempDeviceReportPO.setId(id);
supervisionTempDeviceReportService.save(supervisionTempDeviceReportPO);
//存储临时监测点信息
SupervisionTempLineReportParam supervisionTempLineReportParam = supervisionDevMainReportParam.getSupervisionTempLineReportParam();
SupervisionTempLineReport supervisionTempLineReport = new SupervisionTempLineReport();
BeanUtils.copyProperties(supervisionTempLineReportParam, supervisionTempLineReport);
supervisionTempDeviceReportPO.setId(id);
supervisionTempLineReportService.save(supervisionTempLineReport);
// SupervisionTempLineReportParam supervisionTempLineReportParam = supervisionDevMainReportParam.getSupervisionTempLineReportParam();
// SupervisionTempLineReport supervisionTempLineReport = new SupervisionTempLineReport();
// BeanUtils.copyProperties(supervisionTempLineReportParam, supervisionTempLineReport);
// supervisionTempDeviceReportPO.setId(id);
// supervisionTempLineReportService.save(supervisionTempLineReport);
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
@@ -111,25 +115,78 @@ public class SupervisionDevMainReportPOServiceImpl extends ServiceImpl<Supervisi
@Override
public Page<SupervisionDevMainReportVO> getDevReport(SupervisionDevMainReportParam.SupervisionDevMainReportQuery supervisionDevMainReportQuery) {
QueryWrapper<SupervisionDevMainReportVO> quitRunningDeviceVOQueryWrapper = new QueryWrapper<>();
QueryWrapper<SupervisionDevMainReportVO> queryWrapper = new QueryWrapper<>();
String userIndex = RequestUtil.getUserIndex();
queryWrapper.in("supervision_dev_main_report.create_by", CollectionUtil.newArrayList(userIndex))
.eq("supervision_dev_main_report.state", DataStateEnum.ENABLE.getCode());
if (StrUtil.isNotBlank(supervisionDevMainReportQuery.getOrgId())) {
/*获取直接下属子单位*/
List<String> data = deptFeignClient.getDepSonIdtByDeptId(supervisionDevMainReportQuery.getOrgId()).getData();
//添加上时间范围
quitRunningDeviceVOQueryWrapper.between("supervision_dev_main_report.Create_Time",
queryWrapper.between("supervision_dev_main_report.Create_Time",
DateUtil.beginOfDay(DateUtil.parse(supervisionDevMainReportQuery.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(supervisionDevMainReportQuery.getSearchEndTime())));
}
quitRunningDeviceVOQueryWrapper.orderByDesc("supervision_dev_main_report.Update_Time");
Page<SupervisionDevMainReportVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(supervisionDevMainReportQuery), PageFactory.getPageSize(supervisionDevMainReportQuery)), quitRunningDeviceVOQueryWrapper);
queryWrapper.orderByDesc("supervision_dev_main_report.Update_Time");
Page<SupervisionDevMainReportVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(supervisionDevMainReportQuery), PageFactory.getPageSize(supervisionDevMainReportQuery)), queryWrapper);
page.getRecords().stream().forEach(temp->{
temp.setOrgName((deptFeignClient.getDeptById(temp.getOrgId()).getData().getName()));
//处理特殊字段,用户名、部门名
UserVO userVO = userFeignClient.getUserById(temp.getReporter()).getData();
temp.setReporter(userVO.getName());
temp.setOrgName(deptFeignClient.getDeptById(temp.getOrgId()).getData().getName());
});
return page;
}
@Override
public void updateStatus(String businessKey, Integer status) {
this.lambdaUpdate().set(SupervisionDevMainReportPO::getStatus,status).eq(SupervisionDevMainReportPO::getId,businessKey).update();
}
@Override
public String cancelDevMainReport(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口
SupervisionDevMainReportPO supervisionDevMainReportPO = this.baseMapper.selectById(cancelReqVO.getId());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
supervisionDevMainReportPO.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus());
this.updateById(supervisionDevMainReportPO);
return supervisionDevMainReportPO.getId();
}
@Override
public List<SupervisionTempDeviceReport> getDeviceList() {
String deptIndex = RequestUtil.getDeptIndex();
List<String> data = deptFeignClient.getDepSonIdtByDeptId(deptIndex).getData();
List<SupervisionDevMainReportPO> list = this.lambdaQuery()
.eq(SupervisionDevMainReportPO::getStatus, 2)
.in(CollectionUtil.isNotEmpty(data), SupervisionDevMainReportPO::getOrgId, data)
.list();
if(CollectionUtil.isNotEmpty(list)){
List<String> collect = list.stream().map(SupervisionDevMainReportPO::getId).collect(Collectors.toList());
List<SupervisionTempDeviceReport> list1 = supervisionTempDeviceReportService.lambdaQuery().in(SupervisionTempDeviceReport::getId, collect).list();
return list1;
}
return new ArrayList<>();
}
@Override
public SupervisionDevMainReportVO querySurveyDetail(String id) {
SupervisionDevMainReportVO supervisionDevMainReportVO = new SupervisionDevMainReportVO();
SupervisionDevMainReportPO byId = this.getById(id);
BeanUtils.copyProperties(byId,supervisionDevMainReportVO);
//获取普测下电站详情
SupervisionTempDeviceReport supervisionTempDeviceReport = supervisionTempDeviceReportService.lambdaQuery().eq(SupervisionTempDeviceReport::getId, id).one();
supervisionDevMainReportVO.setSupervisionTempDeviceReport(supervisionTempDeviceReport);
return supervisionDevMainReportVO;
}
/**
* @Description: 判断干扰源用户是否绑定设备,如果重复则提示干扰源用户已经设备
* @Param: supervisionDevMainReportParam终端详情 isExcludeSelf是否排除自己一般新增不排除更新时需要排除自己

View File

@@ -1,10 +1,40 @@
package com.njcn.supervision.service.device.impl;
import org.springframework.stereotype.Service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO;
import com.njcn.supervision.service.device.SupervisionTempLineReportService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* Description:
@@ -14,6 +44,118 @@ import com.njcn.supervision.service.device.SupervisionTempLineReportService;
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
public class SupervisionTempLineReportServiceImpl extends ServiceImpl<SupervisionTempLineReportMapper, SupervisionTempLineReport> implements SupervisionTempLineReportService{
/**
* 监测点建档对应的流程定义 KEY
*/
public static final String PROCESS_KEY = "line_info_add";
private final BpmProcessFeignClient bpmProcessFeignClient;
private final DeptFeignClient deptFeignClient;
private final UserFeignClient userFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
public String addTempLineReport(SupervisionTempLineReportParam supervisionTempLineReportParam) {
//判断干扰源用户是否绑定
checkLineId(supervisionTempLineReportParam, false);
SupervisionTempLineReport supervisionTempLineReport = new SupervisionTempLineReport();
BeanUtils.copyProperties(supervisionTempLineReportParam,supervisionTempLineReport);
supervisionTempLineReport.setState(DataStateEnum.ENABLE.getCode());
supervisionTempLineReport.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(supervisionTempLineReport);
String id = supervisionTempLineReport.getId();
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
bpmProcessInstanceCreateReqDTO.setBusinessKey(id);
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(supervisionTempLineReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(supervisionTempLineReport.getCreateBy(),bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
supervisionTempLineReport.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(supervisionTempLineReport);
return id;
}
@Override
public Page<SupervisionTempLineReportVO> getTempLineReport(SupervisionTempLineReportParam.SupervisionTempLineReportQuery supervisionTempLineReportQuery) {
QueryWrapper<SupervisionTempLineReport> queryWrapper = new QueryWrapper<>();
String userIndex = RequestUtil.getUserIndex();
queryWrapper.in("supervision_temp_line_report.create_by", CollectionUtil.newArrayList(userIndex))
.eq("supervision_temp_line_report.state", DataStateEnum.ENABLE.getCode());
if (StrUtil.isNotBlank(supervisionTempLineReportQuery.getOrgId())) {
/*获取直接下属子单位*/
List<String> data = deptFeignClient.getDepSonIdtByDeptId(supervisionTempLineReportQuery.getOrgId()).getData();
//添加上时间范围
queryWrapper.between("supervision_temp_line_report.Create_Time",
DateUtil.beginOfDay(DateUtil.parse(supervisionTempLineReportQuery.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(supervisionTempLineReportQuery.getSearchEndTime())));
}
queryWrapper.orderByDesc("supervision_temp_line_report.Update_Time");
Page<SupervisionTempLineReportVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(supervisionTempLineReportQuery), PageFactory.getPageSize(supervisionTempLineReportQuery)), queryWrapper);
page.getRecords().stream().forEach(temp->{
temp.setOrgName((deptFeignClient.getDeptById(temp.getOrgId()).getData().getName()));
//处理特殊字段,用户名、部门名
UserVO userVO = userFeignClient.getUserById(temp.getReporter()).getData();
temp.setReporter(userVO.getName());
temp.setOrgName(deptFeignClient.getDeptById(temp.getOrgId()).getData().getName());
});
return page;
}
@Override
public void updateStatus(String businessKey, Integer status) {
this.lambdaUpdate().set(SupervisionTempLineReport::getStatus,status).eq(SupervisionTempLineReport::getId,businessKey).update();
}
@Override
public String cancelTempLineReport(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口
SupervisionTempLineReport supervisionDevMainReportPO = this.baseMapper.selectById(cancelReqVO.getId());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
supervisionDevMainReportPO.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus());
this.updateById(supervisionDevMainReportPO);
return supervisionDevMainReportPO.getId();
}
private void checkLineId(SupervisionTempLineReportParam supervisionTempLineReportParam, boolean isExcludeSelf) {
LambdaQueryWrapper<SupervisionTempLineReport> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper
.eq(SupervisionTempLineReport::getLineId, supervisionTempLineReportParam.getLineId())
.eq(SupervisionTempLineReport::getState, DataStateEnum.ENABLE.getCode());
//更新的时候,需排除当前记录
if (isExcludeSelf) {
if(supervisionTempLineReportParam instanceof SupervisionTempLineReportParam.SupervisionTempLineReportUpdate){
lambdaQueryWrapper.ne(SupervisionTempLineReport::getId, ((SupervisionTempLineReportParam.SupervisionTempLineReportUpdate) supervisionTempLineReportParam).getId());
}
}
List<SupervisionTempLineReport> list = this.baseMapper.selectList(lambdaQueryWrapper);
if (CollectionUtil.isNotEmpty(list)) {
//过滤已取消的申请
list = list.stream()
.filter(temp -> !temp.getStatus().equals(FlowStatusEnum.CANCEL.getCode()))
.collect(Collectors.toList());
//如果还存在,则说明有人申请过了
if (CollectionUtil.isNotEmpty(list)) {
throw new BusinessException(supervisionTempLineReportParam.getUserName().concat(",监测点编号").concat(list.get(0).getReporter()).concat("以使用"));
}
}
}
}