Browse Source

[feat]

1、迁移部门区域相关功能到system服务中
2、开发流媒体回调事件
pull/1/head
杨威 3 months ago
parent
commit
67d413e306
  1. 22
      dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java
  2. 27
      dk-modules/business/pom.xml
  3. 24
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java
  4. 45
      dk-modules/business/src/main/java/org/dromara/business/controller/WebhookController.java
  5. 30
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java
  6. 22
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java
  7. 8
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictItemMapper.java
  8. 10
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictMapper.java
  9. 30
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java
  10. 29
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java
  11. 12
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictItemService.java
  12. 17
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictService.java
  13. 22
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java
  14. 8
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  15. 197
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java
  16. 28
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictItemServiceImpl.java
  17. 37
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictServiceImpl.java
  18. 58
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java
  19. 8
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  20. 55
      dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml
  21. 5
      dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java
  22. 27
      dk-modules/system/pom.xml
  23. 16
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java
  24. 11
      dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java
  25. 6
      dk-modules/system/src/main/java/org/dromara/system/domain/SysGeospatialVectors.java
  26. 9
      dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDict.java
  27. 6
      dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDictItem.java
  28. 28
      dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java
  29. 8
      dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictItemMapper.java
  30. 10
      dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictMapper.java
  31. 30
      dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java
  32. 12
      dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictItemService.java
  33. 14
      dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictService.java
  34. 74
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java
  35. 28
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictItemServiceImpl.java
  36. 37
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictServiceImpl.java
  37. 39
      dk-modules/system/src/main/java/org/dromara/system/utils/BatchProcessorUtil.java
  38. 2
      dk-modules/system/src/main/java/org/dromara/system/utils/ShpAnalysisUtil.java
  39. 26
      dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml
  40. 2
      dk-modules/system/src/main/resources/mapper/system/SysVectorDictItemMapper.xml
  41. 10
      dk-modules/system/src/main/resources/mapper/system/SysVectorDictMapper.xml
  42. 13
      dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java
  43. 7
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java
  44. 13
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
  45. 2
      pom.xml

22
dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java

@ -78,13 +78,13 @@ public interface RemoteWorkflowService {
*/
RemoteStartProcessReturn startWorkFlow(RemoteStartProcess startProcess);
// /**
// * 办理任务
// *
// * @param completeTask 参数
// * @return 结果
// */
// boolean completeTask(RemoteCompleteTask completeTask);
/**
* 办理任务
*
* @param completeTask 参数
* @return 结果
*/
boolean completeTask(RemoteCompleteTask completeTask);
/**
* 获取当前任务的所有办理人
@ -100,4 +100,12 @@ public interface RemoteWorkflowService {
*/
List<String> getPermissions();
/**
* 作废流程
*
* @param instanceId 流程id
* @return 结果
*/
boolean processInvalid(Long instanceId);
}

27
dk-modules/business/pom.xml

@ -114,33 +114,6 @@
<artifactId>api-workflow</artifactId>
</dependency>
<!-- 矢量依赖-->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geometry</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-jts-wrapper</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>29.5</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>

24
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java

@ -8,10 +8,9 @@ import lombok.RequiredArgsConstructor;
import org.dromara.business.service.IBusinessVideoService;
import org.dromara.common.core.domain.R;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* rtmp默认端口1935, rtsp默认端口554
@ -32,7 +31,7 @@ public class BusinessVideoController {
@Operation(summary ="开始录制",description = "开始录制")
@GetMapping("/startRecord")
public R<?> startRecording() {
return businessVideoService.startRecording()?R.ok("启动成功!"):R.fail("启动失败!");
return businessVideoService.startRecording()?R.ok("启动录制成功!"):R.fail("启动录制失败!");
}
/**
@ -74,7 +73,7 @@ public class BusinessVideoController {
})
@GetMapping("/seekRecordStamp")
public R<?> seekRecordStamp(@RequestParam("stamp") Integer stamp) {
return businessVideoService.seekRecordStamp(stamp)?R.ok("设置成功!"):R.fail("设置失败!");
return businessVideoService.seekRecordStamp(stamp)?R.ok("设置录像流播放位置成功!"):R.fail("设置录像流播放位置失败!");
}
/**
@ -85,6 +84,17 @@ public class BusinessVideoController {
})
@GetMapping("/setRecordSpeed")
public R<?> setRecordSpeed(@RequestParam("speed") Double speed) {
return businessVideoService.setRecordSpeed(speed)?R.ok("获取成功!"):R.fail("获取失败!");
return businessVideoService.setRecordSpeed(speed)?R.ok("设置录像速度成功!"):R.fail("设置录像速度失败!");
}
/**
* 回调事件
* @param map
* @return
*/
@PostMapping(value = "/index/hook/on_record_mp4")
public R<?> hookOnRecordMp4(@RequestBody Map<String,Object> map) {
return R.ok(map);
}
}

45
dk-modules/business/src/main/java/org/dromara/business/controller/WebhookController.java

@ -0,0 +1,45 @@
package org.dromara.business.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.web.core.BaseController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* ZLMediaKit视频流事件回调
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/index/hook")
@Tag(name = "ZLMediaKit视频流事件回调")
@Slf4j
public class WebhookController {
/**
* 处理播放事件
*/
@PostMapping("/on_play")
public String onPlay(@RequestBody String body) {
log.info("on_play event: {}", body);
return "{\"code\": 0}";
}
/**
* 处理录制 MP4 文件事件
*/
@PostMapping("/on_record_mp4")
public String onRecordMp4(@RequestBody String body) {
log.info("on_record_mp4 event: {}", body);
return "{\"code\": 0}";
}
}

30
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java

@ -1,30 +0,0 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessDepartBoundary;
import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission;
import java.util.List;
/**
* 部门 Mapper 接口
*/
public interface BusinessDepartBoundaryMapper extends BaseMapper<BusinessDepartBoundary> {
Page<BusinessDepartBoundary> listSysDepartBoundary(Page<BusinessDepartBoundary> page,@Param("condition") BusinessDepartBoundary sysDepartBoundary);
List<BusinessDepartBoundary> listSysDepartBoundaryGeomFromText(@Param("condition") BusinessDepartBoundary sysDepartBoundary);
/**
* 通过部门编码获取部门边界数据
* @param deptId 部门编码
* @return String
*/
List<BusinessDepartBoundary> queryByDeptId(@Param("deptId") String deptId);
void saveBatchBoundary(@Param("list") List<BusinessDepartBoundary> boundaryList);
String listJson(@Param("param") BusinessDepartBoundary departBoundary);
}

22
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java

@ -1,22 +0,0 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import java.util.List;
/**
* @Description: 巡查区域
*/
public interface BusinessPatrolAreasMapper extends BaseMapper<BusinessPatrolAreas> {
IPage<BusinessPatrolAreas> listPatrolAreas(Page<BusinessPatrolAreas> page, @Param("condition") BusinessPatrolAreasBo patrolAreasBo, @Param("deptIds") List<String> deptIds);
List<BusinessPatrolAreas> listPatrolAreas(@Param("condition") BusinessPatrolAreasBo patrolAreasBo, @Param("deptIds") List<String> deptIds);
}

8
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictItemMapper.java

@ -1,8 +0,0 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.dromara.business.domain.BusinessVectorDictItem;
public interface BusinessVectorDictItemMapper extends BaseMapper<BusinessVectorDictItem> {
}

10
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictMapper.java

@ -1,10 +0,0 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.dromara.business.domain.BusinessVectorDict;
import java.util.List;
public interface BusinessVectorDictMapper extends BaseMapper<BusinessVectorDict> {
List<BusinessVectorDict> listVectorField();
}

30
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java

@ -1,30 +0,0 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.business.domain.BusinessDepartBoundary;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 部门区域 服务实现类
*/
public interface IBusinessDepartBoundaryService extends IService<BusinessDepartBoundary>{
TableDataInfo<BusinessDepartBoundary> listSysDepartBoundary(PageQuery page, BusinessDepartBoundary departBoundary);
List<BusinessDepartBoundary> listSysDepartBoundaryGeomFromText(BusinessDepartBoundary departBoundary);
List<BusinessDepartBoundary> queryByDeptId(String deptId);
boolean uploadShpFile(MultipartFile file,Integer areaType);
boolean deleteDepartBoundary(String id);
boolean updateDepartBoundary(BusinessDepartBoundary departBoundary);
boolean addDepartBoundary(BusinessDepartBoundary departBoundary);
String listJson(BusinessDepartBoundary departBoundary);
}

29
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java

@ -1,29 +0,0 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @Description: 巡查区域
*/
public interface IBusinessPatrolAreasService extends IService<BusinessPatrolAreas> {
TableDataInfo<BusinessPatrolAreas> pagePatrolAreas(PageQuery pageQuery, BusinessPatrolAreasBo patrolAreasBo);
List<BusinessPatrolAreas> listPatrolAreas(BusinessPatrolAreasBo patrolAreasBo);
void addPatrolAreas(MultipartFile file);
boolean updatePatrolAreas(BusinessPatrolAreas patrolAreas);
List<BusinessPatrolAreas> exportXls(BusinessPatrolAreas patrolAreas);
}

12
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictItemService.java

@ -1,12 +0,0 @@
package org.dromara.business.service;
import org.dromara.business.domain.BusinessVectorDictItem;
import java.util.List;
public interface IBusinessVectorDictItemService {
List<BusinessVectorDictItem> findDictItemByDictId(String dictId);
}

17
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictService.java

@ -1,17 +0,0 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.business.domain.BusinessVectorDict;
import java.util.List;
public interface IBusinessVectorDictService {
List<BusinessVectorDict> listVectorField();
BusinessVectorDict findVectorDictById(String dictId);
}

22
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java

@ -2,15 +2,35 @@ package org.dromara.business.service;
public interface IBusinessVideoService {
/**
* 开始录制
*/
Boolean startRecording();
/**
* 停止录制
*/
Boolean stopRecording();
/**
* 获取录制状态
*/
Boolean isRecording();
/**
* 获取截图
*/
String getSnap(Integer timeoutSec, Integer expireSec);
/**
* 设置录像速度(官方提供的接口有问题)暂时不用
*/
Boolean setRecordSpeed(Double speed);
String getSnap(Integer timeoutSec, Integer expireSec);
/**
* 设置录像速度(官方提供的接口有问题)暂时不用
*/
Boolean seekRecordStamp(Integer stamp);
}

8
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -19,6 +19,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.system.api.model.PostDTO;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.springframework.stereotype.Service;
@ -140,7 +141,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
*/
@Override
public TableDataInfo<BusinessAlert> pageBusinessAlertCancel(BusinessAlertBo bo, PageQuery pageQuery) {
bo.setHandleType(BusinessStatusEnum.CANCEL.getStatus());
bo.setHandleType(BusinessStatusEnum.INVALID.getStatus());
QueryWrapper<BusinessAlert> wrapper = buildQueryWrapper(bo);
Page<BusinessAlert> page = this.baseMapper.pageBusinessAlertCancel(pageQuery.build(), wrapper);
@ -201,8 +202,6 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
}
/**
* 构建wrapper
* @param bo
@ -211,6 +210,9 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
private QueryWrapper<BusinessAlert> buildQueryWrapper(BusinessAlertBo bo) {
QueryWrapper<BusinessAlert> wrapper = new QueryWrapper<>();
//根据当前用户职能获取识别类型
// List<PostDTO> posts = LoginHelper.getLoginUser().getPosts();
//排除状态为验证状态预警
wrapper.ne("ba.handle_type", BusinessStatusEnum.VERIFY.getStatus());

197
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java

@ -1,197 +0,0 @@
package org.dromara.business.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.domain.*;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import org.dromara.business.mapper.BusinessPatrolAreasMapper;
import org.dromara.business.service.*;
import org.dromara.business.utils.ShpAnalysisUtil;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteDeptVo;
import org.dromara.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 巡查区域
*/
@RequiredArgsConstructor
@Service
public class BusinessPatrolAreasServiceImpl extends ServiceImpl<BusinessPatrolAreasMapper, BusinessPatrolAreas> implements IBusinessPatrolAreasService {
private final IBusinessVectorDictService vectorDictService;
@DubboReference
private RemoteUserService remoteUserService;
@DubboReference
private RemoteDeptService remoteDeptService;
@Override
public TableDataInfo<BusinessPatrolAreas> pagePatrolAreas(PageQuery pageQuery, BusinessPatrolAreasBo patrolAreasBo) {
LoginUser user = LoginHelper.getLoginUser();
List<String> deptIds = new ArrayList<>();
String departIds = null;
if(StringUtils.isBlank(patrolAreasBo.getDeptId())){
RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(user.getDeptId());
if(ObjectUtil.isEmpty(remoteDeptVo)){
throw new ServiceException("部门不存在");
}
departIds = user.getDeptId() + "";
}else {
departIds = patrolAreasBo.getDeptId();
}
deptIds.add(departIds);
return TableDataInfo.build(this.baseMapper.listPatrolAreas(pageQuery.build(), patrolAreasBo, deptIds));
}
@Override
public List<BusinessPatrolAreas> listPatrolAreas(BusinessPatrolAreasBo patrolAreasBo) {
return this.baseMapper.listPatrolAreas(patrolAreasBo, patrolAreasBo.getDeptIds());
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updatePatrolAreas(BusinessPatrolAreas patrolAreas) {
patrolAreas.setUserName(remoteUserService.selectUserNameById(Long.valueOf(patrolAreas.getUserId())));
return this.updateById(patrolAreas);
}
@Override
public List<BusinessPatrolAreas> exportXls(BusinessPatrolAreas patrolAreas) {
LambdaQueryWrapper<BusinessPatrolAreas> wrapper = buildWrapper(patrolAreas);
return this.list(wrapper);
}
@Override
public void addPatrolAreas(MultipartFile file) {
List<BusinessGeospatialVectors> geospatialVectorsList = new ArrayList<>();
try {
//1、首先调用解析工具拿到解析的字段集合
InputStream inputStream = file.getInputStream();
List<Map<String, String>> mapList = ShpAnalysisUtil.analysisShpFile(inputStream);
// 3. 构建字典map
List<BusinessVectorDict> fieldsInfoList = vectorDictService.listVectorField();
Map<String, List<String>> dictMap = fieldsInfoList
.stream()
.collect(Collectors.toMap(
BusinessVectorDict::getDictCode,
v -> v.getFieldMappingsList().stream()
.map(mapping -> mapping.getItemValue().toLowerCase()) // 转小写
.collect(Collectors.toList())
));
// 4. 遍历 mapList,替换映射关系并只保留有效条目
List<Map<String, String>> resultList = mapList.stream()
.map(originalMap -> originalMap.entrySet().stream()
.filter(entry -> {
String keyLower = entry.getKey().toLowerCase(); // 将 mapList 中的 key 转换为小写
// 遍历 dictMap 的所有 List<String>,检查其中是否包含该 key
return dictMap.values().stream()
.anyMatch(list -> list.contains(keyLower)); // 判断 dictMap 中的 List<String> 是否包含该 key
})
.collect(Collectors.toMap(
entry -> {
// 根据匹配的 key 查找 dictMap 中对应的 key
return dictMap.entrySet().stream()
.filter(mapEntry -> mapEntry.getValue().contains(entry.getKey().toLowerCase()))
.map(Map.Entry::getKey)
.findFirst()
.orElse(""); // 如果没有匹配到,则返回空字符串
},
Map.Entry::getValue
))
)
.filter(transformedMap -> !transformedMap.isEmpty()) // 过滤空的 Map
.collect(Collectors.toList());
// 5. 通过反射设置 GeospatialVectors 对象的属性
for (Map<String, String> transformedMap : resultList) {
BusinessGeospatialVectors geoVector = new BusinessGeospatialVectors();
transformedMap.forEach((key, value) -> {
try {
// 尝试通过反射找到相应的Setter方法,并调用
Method setterMethod = BusinessGeospatialVectors.class.getMethod("set" + capitalizeFirstLetter(key), String.class);
setterMethod.invoke(geoVector, value);
} catch (Exception e) {
e.printStackTrace();
}
});
geoVector.setCreateTime(new Date());
geospatialVectorsList.add(geoVector);
}
//6、生成新的对象集合存储数据表中
//todo 处理这个集合geospatialVectorsList
List<BusinessPatrolAreas> areasList = buildBusinessPatrolAreas(geospatialVectorsList);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据解析shp得到的内容封装到BusinessPatrolAreas这个类里面
* @param paramList
* @return
*/
private List<BusinessPatrolAreas> buildBusinessPatrolAreas(List<BusinessGeospatialVectors> paramList) {
List<BusinessPatrolAreas> resultList = new ArrayList<>();
return resultList;
}
private static String capitalizeFirstLetter(String str) {
if (str == null || str.isEmpty()) {
return str;
}
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
private LambdaQueryWrapper<BusinessPatrolAreas> buildWrapper(BusinessPatrolAreas patrolAreas) {
LambdaQueryWrapper<BusinessPatrolAreas> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotEmpty(patrolAreas.getName())){
wrapper.like(BusinessPatrolAreas::getName, patrolAreas.getName());
}
if (ObjectUtil.isNotEmpty(patrolAreas.getDeptId())){
wrapper.eq(BusinessPatrolAreas::getDeptId, patrolAreas.getDeptId());
}
if (ObjectUtil.isNotEmpty(patrolAreas.getAreasIdList())){
wrapper.in(BusinessPatrolAreas::getId, patrolAreas.getAreasIdList());
}
return wrapper;
}
}

28
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictItemServiceImpl.java

@ -1,28 +0,0 @@
package org.dromara.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.business.domain.BusinessVectorDictItem;
import org.dromara.business.mapper.BusinessVectorDictItemMapper;
import org.dromara.business.service.IBusinessVectorDictItemService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 矢量数据字段映射关联服务类
*/
@Service
public class BusinessVectorDictItemServiceImpl extends ServiceImpl<BusinessVectorDictItemMapper, BusinessVectorDictItem> implements IBusinessVectorDictItemService {
@Override
public List<BusinessVectorDictItem> findDictItemByDictId(String dictId) {
LambdaQueryWrapper<BusinessVectorDictItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusinessVectorDictItem::getDictId, dictId);
return this.baseMapper.selectList(wrapper);
}
}

37
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictServiceImpl.java

@ -1,37 +0,0 @@
package org.dromara.business.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.business.domain.BusinessVectorDict;
import org.dromara.business.mapper.BusinessVectorDictMapper;
import org.dromara.business.service.IBusinessVectorDictService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 矢量数据字段映射主表服务类
*/
@Service
public class BusinessVectorDictServiceImpl extends ServiceImpl<BusinessVectorDictMapper, BusinessVectorDict> implements IBusinessVectorDictService {
@Override
public List<BusinessVectorDict> listVectorField() {
return this.baseMapper.listVectorField();
}
@Override
public BusinessVectorDict findVectorDictById(String dictId) {
if (ObjectUtil.isEmpty(dictId)){
throw new RuntimeException("【dictId】为空,参数为空!");
}
LambdaQueryWrapper<BusinessVectorDict> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusinessVectorDict::getId, dictId);
return this.baseMapper.selectOne(wrapper);
}
}

58
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java

@ -44,7 +44,7 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService {
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
Map<String, Object> resultMap = objectMapper.readValue(response.getBody(), Map.class);
result = (Boolean) resultMap.get("status");
result = (Boolean) resultMap.get("result");
log.info("录制启动成功: {}", resultMap);
}
} catch (Exception e) {
@ -72,7 +72,7 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService {
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
Map<String, Object> resultMap = objectMapper.readValue(response.getBody(), Map.class);
result = (Boolean) resultMap.get("status");
result = (Boolean) resultMap.get("result");
log.info("录制停止成功: {}", resultMap);
}
} catch (Exception e) {
@ -111,6 +111,31 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService {
return result;
}
@Override
public String getSnap(Integer timeoutSec, Integer expireSec) {
String url = String.format("rtmp://%s/%s/%s",zlmConfig.getRtmp(),zlmConfig.getApp(),zlmConfig.getStream());
String apiUrl = String.format("%s%s?secret=%s&url=%s&timeout_sec=%s&expire_sec=%s",
zlmConfig.getApiUrl(),
zlmConfig.getSnapUrl(),
zlmConfig.getSecret(),
url,
timeoutSec,
expireSec);
try {
ResponseEntity<String> response = restTemplate.getForEntity(apiUrl, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
log.info("获取截图成功: {}", response.getBody());
}
return response.getBody();
} catch (Exception e) {
log.error("请求异常: {}", e.getMessage(), e);
}
return "";
}
@Override
public Boolean setRecordSpeed(Double speed) {
Boolean result = false;
@ -129,7 +154,7 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService {
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
Map<String, Object> resultMap = objectMapper.readValue(response.getBody(), Map.class);
result = (Boolean) resultMap.get("status");
result = (Boolean) resultMap.get("result");
log.info("设置录制速度成功: {}", result);
}
} catch (Exception e) {
@ -140,31 +165,6 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService {
return result;
}
@Override
public String getSnap(Integer timeoutSec, Integer expireSec) {
String url = String.format("rtmp://%s/%s/%s",zlmConfig.getRtmp(),zlmConfig.getApp(),zlmConfig.getStream());
String apiUrl = String.format("%s%s?secret=%s&url=%s&timeout_sec=%s&expire_sec=%s",
zlmConfig.getApiUrl(),
zlmConfig.getSnapUrl(),
zlmConfig.getSecret(),
url,
timeoutSec,
expireSec);
try {
ResponseEntity<String> response = restTemplate.getForEntity(apiUrl, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
log.info("获取截图成功: {}", response.getBody());
}
return response.getBody();
} catch (Exception e) {
log.error("请求异常: {}", e.getMessage(), e);
}
return "";
}
@Override
public Boolean seekRecordStamp(Integer stamp) {
@ -183,7 +183,7 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService {
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
Map<String, Object> resultMap = objectMapper.readValue(response.getBody(), Map.class);
result = (Boolean) resultMap.get("status");
result = (Boolean) resultMap.get("result");
log.info("设置录像流播放位置成功: {}", resultMap);
}
} catch (Exception e) {

8
dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -178,7 +178,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
IFNULL(COUNT(ba.id), 0) AS total,
IFNULL(SUM(ba.handle_type = 'waiting'), 0) AS todoCount,
IFNULL(SUM(ba.handle_type = 'finish'), 0) AS finishCount,
IFNULL(SUM( ba.handle_type = 'cancel' ),0) AS cancelCount
IFNULL(SUM( ba.handle_type = 'invalid' ),0) AS cancelCount
FROM months m
LEFT JOIN business_alert ba
ON DATE_FORMAT(ba.create_time, '%Y-%m') = DATE_FORMAT(m.dateMonth, '%Y-%m')
@ -222,7 +222,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
COUNT(ba.id) AS total_warnings,
IFNULL(SUM(handle_type = 'waiting'), 0) AS todoCount,
IFNULL(SUM(handle_type = 'finish'), 0) AS finishCount,
IFNULL(SUM(ba.handle_type = 'cancel'), 0) AS cancelCount
IFNULL(SUM(ba.handle_type = 'invalid'), 0) AS cancelCount
FROM
business_alert ba
INNER JOIN sub_depts d ON ba.dept_id = d.dept_id
@ -289,7 +289,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
COUNT(DISTINCT ba.id) AS total,
IFNULL(SUM( ba.handle_type = 'waiting' ),0) AS todoCount,
IFNULL(SUM( ba.handle_type = 'finish' ),0) AS finishCount,
IFNULL(SUM( ba.handle_type = 'cancel' ),0) AS cancelCount
IFNULL(SUM( ba.handle_type = 'invalid' ),0) AS cancelCount
FROM month_department md
LEFT JOIN business_alert ba
ON md.dept_id = ba.dept_id
@ -303,7 +303,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select COUNT(DISTINCT ba.id) AS total,
IFNULL(SUM( ba.handle_type = 'waiting' ),0) AS todoCount,
IFNULL(SUM( ba.handle_type = 'finish' ),0) AS finishCount,
IFNULL(SUM( ba.handle_type = 'cancel' ),0) AS cancelCount
IFNULL(SUM( ba.handle_type = 'invalid' ),0) AS cancelCount
from business_alert ba
where 1=1
<include refid="searchSql"></include>

55
dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml

@ -1,55 +0,0 @@
<?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="org.dromara.business.mapper.BusinessPatrolAreasMapper">
<resultMap id="listPatrolAreasMap" type="org.dromara.business.domain.BusinessPatrolAreas">
<result column="id" property="id" jdbcType="VARCHAR"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="number" property="number" jdbcType="VARCHAR"/>
<result column="dept_id" property="deptId" jdbcType="VARCHAR"/>
<result column="dept_ids" property="deptIds" jdbcType="VARCHAR"/>
<result column="platform_type" property="platformType" jdbcType="VARCHAR"/>
<result column="dept_name" property="deptName" jdbcType="VARCHAR"/>
<result column="leader_dept_id" property="leaderDeptId" jdbcType="VARCHAR"/>
<result column="user_id" property="userId" jdbcType="VARCHAR"/>
<result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="create_by" property="createBy" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<collection column="{areaId=id}"
property="patrolAreasUsers" ofType="org.dromara.business.domain.BusinessPatrolAreasUser"
javaType="java.util.ArrayList"
select="org.dromara.business.mapper.BusinessPatrolAreasUserMapper.listPatrolAreasUserByAreaId"/>
<collection column="{areaId=id}"
property="patrolAreasPoints" ofType="org.dromara.business.domain.BusinessPatrolAreasPoints"
javaType="java.util.ArrayList"
select="org.dromara.business.mapper.BusinessPatrolAreasPointsMapper.listPatrolAreasPointByAreaId"/>
</resultMap>
<select id="listPatrolAreas" resultMap="listPatrolAreasMap">
select pa.*,sd.dept_name as dept_name from business_patrol_areas pa
LEFT JOIN dk_cloud.sys_dept sd ON pa.dept_id = sd.dept_id
where
pa.del_flag = 0
<if test="deptIds.size > 0">
and pa.dept_id in
<foreach item="id" collection="deptIds" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="condition.name != null and condition.name != ''">
and pa.name LIKE concat(concat('%',#{condition.name}),'%')
</if>
<if test="condition.platformType != null and condition.platformType != ''">
AND pa.id IN (
SELECT api.patrol_areas_id
FROM business_patrol_areas_platform_info api
WHERE api.platform_type = 'plough'
)
</if>
<if test="condition.name != null and condition.name != ''">
and pa.name LIKE concat(concat('%',#{condition.name}),'%')
</if>
<if test="condition.isDisable != null and condition.isDisable != ''">
and pa.is_disable =#{condition.isDisable}
</if>
</select>
</mapper>

5
dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java

@ -45,7 +45,6 @@ public class SysOssController extends BaseController {
/**
* 查询OSS对象存储列表
*/
@SaCheckPermission("system:oss:list")
@GetMapping("/list")
@Operation(summary = "查询OSS对象存储列表",description = "查询OSS对象存储列表")
public TableDataInfo<SysOssVo> list(@Validated(QueryGroup.class) SysOssBo bo, PageQuery pageQuery) {
@ -57,7 +56,6 @@ public class SysOssController extends BaseController {
*
* @param ossIds OSS对象ID串
*/
@SaCheckPermission("system:oss:list")
@GetMapping("/listByIds/{ossIds}")
@Operation(summary = "查询OSS对象基于id串",description = "查询OSS对象基于id串")
public R<List<SysOssVo>> listByIds(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) {
@ -70,7 +68,6 @@ public class SysOssController extends BaseController {
*
* @param file 文件
*/
@SaCheckPermission("system:oss:upload")
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(summary = "上传OSS对象存储",description = "上传OSS对象存储")
@ -91,7 +88,6 @@ public class SysOssController extends BaseController {
*
* @param ossId OSS对象ID
*/
@SaCheckPermission("system:oss:download")
@GetMapping("/download/{ossId}")
@Operation(summary = "下载OSS对象存储",description = "下载OSS对象存储")
public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
@ -103,7 +99,6 @@ public class SysOssController extends BaseController {
*
* @param ossIds OSS对象ID串
*/
@SaCheckPermission("system:oss:remove")
@Log(title = "OSS对象存储", businessType = BusinessType.DELETE)
@DeleteMapping("/{ossIds}")
@Operation(summary = "删除OSS对象存储",description = "删除OSS对象存储")

27
dk-modules/system/pom.xml

@ -104,6 +104,33 @@
<artifactId>api-resource</artifactId>
</dependency>
<!-- 矢量依赖-->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geometry</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-jts-wrapper</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>29.5</version>
</dependency>
</dependencies>
<build>

16
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java → dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java

@ -1,16 +1,16 @@
package org.dromara.business.controller;
package org.dromara.system.controller.system;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.business.domain.BusinessDepartBoundary;
import org.dromara.business.service.IBusinessDepartBoundaryService;
import org.dromara.system.domain.SysDepartBoundary ;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.system.service.ISysDepartBoundaryService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -22,9 +22,9 @@ import org.springframework.web.multipart.MultipartFile;
@RequestMapping("/depart/boundary")
@Slf4j
@RequiredArgsConstructor
public class BusinessDepartBoundaryController extends BaseController {
public class SysDepartBoundaryController extends BaseController {
private final IBusinessDepartBoundaryService departBoundaryService;
private final ISysDepartBoundaryService departBoundaryService;
/**
@ -34,7 +34,7 @@ public class BusinessDepartBoundaryController extends BaseController {
*/
@Operation(summary ="查询部门的地理位置",description = "查询部门的地理位置")
@GetMapping(value = "/listJson")
public R<String> listJson(BusinessDepartBoundary departBoundary) {
public R<String> listJson(SysDepartBoundary departBoundary) {
String listJson = departBoundaryService.listJson(departBoundary);
return R.ok("查询成功!",listJson);
}
@ -46,7 +46,7 @@ public class BusinessDepartBoundaryController extends BaseController {
*/
@Operation(summary ="查询部门区域列表",description = "查询部门区域列表")
@RequestMapping(value = "/page", method = RequestMethod.GET)
public TableDataInfo<BusinessDepartBoundary> queryPageList(BusinessDepartBoundary departBoundary, PageQuery pageQuery) {
public TableDataInfo<SysDepartBoundary> queryPageList(SysDepartBoundary departBoundary, PageQuery pageQuery) {
return departBoundaryService.listSysDepartBoundary(pageQuery, departBoundary);
}
@ -69,7 +69,7 @@ public class BusinessDepartBoundaryController extends BaseController {
*/
@Operation(summary ="编辑部门区域",description = "编辑部门区域")
@RequestMapping(value = "/update", method = RequestMethod.POST)
public R<Void> updateDepartBoundary(@RequestBody BusinessDepartBoundary departBoundary) {
public R<Void> updateDepartBoundary(@RequestBody SysDepartBoundary departBoundary) {
return toAjax(departBoundaryService.updateDepartBoundary(departBoundary));
}

11
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java → dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java

@ -1,4 +1,4 @@
package org.dromara.business.domain;
package org.dromara.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serial;
@ -15,8 +14,8 @@ import java.io.Serial;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("business_depart_boundary")
public class BusinessDepartBoundary extends BaseEntity {
@TableName("sys_depart_boundary")
public class SysDepartBoundary extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
@ -33,14 +32,14 @@ public class BusinessDepartBoundary extends BaseEntity {
/**机构ID*/
private String deptId;
/**机构/部门名称*/
@Excel(name="机构/部门名称",width=15)
private String deptName;
/**是否显示0显示,1不显示*/
private Integer type;
/**边界*/
/**边界*/
private String communityName;
/**边界*/
private String boundary;

6
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessGeospatialVectors.java → dk-modules/system/src/main/java/org/dromara/system/domain/SysGeospatialVectors.java

@ -1,4 +1,4 @@
package org.dromara.business.domain;
package org.dromara.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
@ -14,10 +14,10 @@ import java.util.Date;
*存储解析的shp的矢量数据
*/
@Data
@TableName("business_geospatial_vectors")
@TableName("sys_geospatial_vectors")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessGeospatialVectors {
public class SysGeospatialVectors {
/**
* ID

9
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDict.java → dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDict.java

@ -1,4 +1,4 @@
package org.dromara.business.domain;
package org.dromara.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.util.List;
@ -15,10 +16,10 @@ import java.util.List;
* 矢量数据字段映射主表
*/
@Data
@TableName("Business_vector_dict")
@TableName("sys_vector_dict")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessVectorDict extends BaseEntity {
public class SysVectorDict extends BaseEntity {
/**
*
@ -42,6 +43,6 @@ public class BusinessVectorDict extends BaseEntity {
private String dictName;
@TableField(exist = false)
private List<BusinessVectorDictItem> fieldMappingsList;
private List<SysVectorDictItem> fieldMappingsList;
}

6
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDictItem.java → dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDictItem.java

@ -1,4 +1,4 @@
package org.dromara.business.domain;
package org.dromara.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@ -12,10 +12,10 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
* 矢量数据字段映射关联表
*/
@Data
@TableName("Business_vector_dict_item")
@TableName("sys_vector_dict_item")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessVectorDictItem extends BaseEntity {
public class SysVectorDictItem extends BaseEntity {
/**
*

28
dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java

@ -0,0 +1,28 @@
package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.system.domain.SysDepartBoundary;
import java.util.List;
/**
* 部门 Mapper 接口
*/
public interface SysDepartBoundaryMapper extends BaseMapper<SysDepartBoundary> {
Page<SysDepartBoundary> listSysDepartBoundary(Page<SysDepartBoundary> page,@Param("condition") SysDepartBoundary sysDepartBoundary);
List<SysDepartBoundary> listSysDepartBoundaryGeomFromText(@Param("condition") SysDepartBoundary sysDepartBoundary);
/**
* 通过部门编码获取部门边界数据
* @param deptId 部门编码
* @return String
*/
List<SysDepartBoundary> queryByDeptId(@Param("deptId") String deptId);
void saveBatchBoundary(@Param("list") List<SysDepartBoundary> boundaryList);
String listJson(@Param("param") SysDepartBoundary departBoundary);
}

8
dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictItemMapper.java

@ -0,0 +1,8 @@
package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.dromara.system.domain.SysVectorDictItem;
public interface SysVectorDictItemMapper extends BaseMapper<SysVectorDictItem> {
}

10
dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictMapper.java

@ -0,0 +1,10 @@
package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.dromara.system.domain.SysVectorDict;
import java.util.List;
public interface SysVectorDictMapper extends BaseMapper<SysVectorDict> {
List<SysVectorDict> listVectorField();
}

30
dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java

@ -0,0 +1,30 @@
package org.dromara.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.system.domain.SysDepartBoundary;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 部门区域 服务实现类
*/
public interface ISysDepartBoundaryService extends IService<SysDepartBoundary>{
TableDataInfo<SysDepartBoundary> listSysDepartBoundary(PageQuery page, SysDepartBoundary departBoundary);
List<SysDepartBoundary> listSysDepartBoundaryGeomFromText(SysDepartBoundary departBoundary);
List<SysDepartBoundary> queryByDeptId(String deptId);
boolean uploadShpFile(MultipartFile file,Integer areaType);
boolean deleteDepartBoundary(String id);
boolean updateDepartBoundary(SysDepartBoundary departBoundary);
boolean addDepartBoundary(SysDepartBoundary departBoundary);
String listJson(SysDepartBoundary departBoundary);
}

12
dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictItemService.java

@ -0,0 +1,12 @@
package org.dromara.system.service;
import org.dromara.system.domain.SysVectorDictItem;
import java.util.List;
public interface ISysVectorDictItemService {
List<SysVectorDictItem> findDictItemByDictId(String dictId);
}

14
dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictService.java

@ -0,0 +1,14 @@
package org.dromara.system.service;
import org.dromara.system.domain.SysVectorDict;
import java.util.List;
public interface ISysVectorDictService {
List<SysVectorDict> listVectorField();
SysVectorDict findVectorDictById(String dictId);
}

74
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java → dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java

@ -1,41 +1,29 @@
package org.dromara.business.service.impl;
package org.dromara.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.domain.BusinessDepartBoundary;
import org.dromara.business.domain.BusinessGeospatialVectors;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.BusinessVectorDict;
import org.dromara.business.mapper.BusinessDepartBoundaryMapper;
import org.dromara.business.service.IBusinessDepartBoundaryService;
import org.dromara.business.service.IBusinessVectorDictService;
import org.dromara.business.utils.BatchProcessorUtil;
import org.dromara.business.utils.ShpAnalysisUtil;
import org.dromara.system.domain.SysDepartBoundary;
import org.dromara.system.domain.SysGeospatialVectors;
import org.dromara.system.domain.SysVectorDict;
import org.dromara.system.mapper.SysDepartBoundaryMapper;
import org.dromara.system.service.ISysDepartBoundaryService;
import org.dromara.system.service.ISysVectorDictService;
import org.dromara.system.utils.BatchProcessorUtil;
import org.dromara.system.utils.ShpAnalysisUtil;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -47,31 +35,29 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepartBoundaryMapper, BusinessDepartBoundary> implements IBusinessDepartBoundaryService {
public class SysDepartBoundaryServiceImpl extends ServiceImpl<SysDepartBoundaryMapper, SysDepartBoundary> implements ISysDepartBoundaryService {
private final IBusinessVectorDictService vectorDictService;
private final ISysVectorDictService vectorDictService;
@DubboReference
RemoteDeptService remoteDeptService;
private final DataSource dataSource;
@Override
public TableDataInfo<BusinessDepartBoundary> listSysDepartBoundary(PageQuery pageQuery, BusinessDepartBoundary departBoundary) {
Page<BusinessDepartBoundary> page = baseMapper.listSysDepartBoundary(pageQuery.build(),departBoundary);
public TableDataInfo<SysDepartBoundary> listSysDepartBoundary(PageQuery pageQuery, SysDepartBoundary departBoundary) {
Page<SysDepartBoundary> page = baseMapper.listSysDepartBoundary(pageQuery.build(),departBoundary);
return TableDataInfo.build(page);
}
@Override
public List<BusinessDepartBoundary> listSysDepartBoundaryGeomFromText(BusinessDepartBoundary departBoundary) {
public List<SysDepartBoundary> listSysDepartBoundaryGeomFromText(SysDepartBoundary departBoundary) {
return baseMapper.listSysDepartBoundaryGeomFromText(departBoundary);
}
@Override
public List<BusinessDepartBoundary> queryByDeptId(String deptId) {
public List<SysDepartBoundary> queryByDeptId(String deptId) {
return baseMapper.queryByDeptId(deptId);
}
@ -79,10 +65,10 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
@Transactional(rollbackFor = Exception.class)
public boolean uploadShpFile(MultipartFile file,Integer areaType) {
try {
List<BusinessGeospatialVectors> geospatialVectorsList = buildGeospatialVector(file);
List<SysGeospatialVectors> geospatialVectorsList = buildGeospatialVector(file);
//6、生成新的对象集合存储数据表中
List<BusinessDepartBoundary> boundaryList = buildBusinessDepartBoundary(geospatialVectorsList,areaType);
List<SysDepartBoundary> boundaryList = buildBusinessDepartBoundary(geospatialVectorsList,areaType);
// 分批处理
int startIndex = 0; // 从第 0 条开始
@ -103,20 +89,20 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
}
}
private List<BusinessGeospatialVectors> buildGeospatialVector(MultipartFile file){
List<BusinessGeospatialVectors> geospatialVectorsList = new ArrayList<>();
private List<SysGeospatialVectors> buildGeospatialVector(MultipartFile file){
List<SysGeospatialVectors> geospatialVectorsList = new ArrayList<>();
try {
//1、首先调用解析工具拿到解析的字段集合
InputStream inputStream = file.getInputStream();
List<Map<String, String>> mapList = ShpAnalysisUtil.analysisShpFile(inputStream);
// 3. 构建字典map
List<BusinessVectorDict> fieldsInfoList = vectorDictService.listVectorField();
List<SysVectorDict> fieldsInfoList = vectorDictService.listVectorField();
Map<String, List<String>> dictMap = fieldsInfoList
.stream()
.collect(Collectors.toMap(
BusinessVectorDict::getDictCode,
SysVectorDict::getDictCode,
v -> v.getFieldMappingsList().stream()
.map(mapping -> mapping.getItemValue().toLowerCase()) // 转小写
.collect(Collectors.toList())
@ -149,12 +135,12 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
// 5. 通过反射设置 GeospatialVectors 对象的属性
for (Map<String, String> transformedMap : resultList) {
BusinessGeospatialVectors geoVector = new BusinessGeospatialVectors();
SysGeospatialVectors geoVector = new SysGeospatialVectors();
transformedMap.forEach((key, value) -> {
try {
// 尝试通过反射找到相应的Setter方法,并调用
Method setterMethod = BusinessGeospatialVectors.class.getMethod("set" + capitalizeFirstLetter(key), String.class);
Method setterMethod = SysGeospatialVectors.class.getMethod("set" + capitalizeFirstLetter(key), String.class);
setterMethod.invoke(geoVector, value);
} catch (Exception e) {
@ -173,7 +159,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
}
@Override
public boolean updateDepartBoundary(BusinessDepartBoundary departBoundary) {
public boolean updateDepartBoundary(SysDepartBoundary departBoundary) {
if (ObjectUtil.isEmpty(departBoundary.getId())) {
throw new ServiceException("【id】参数为空");
}
@ -182,12 +168,12 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
}
@Override
public boolean addDepartBoundary(BusinessDepartBoundary departBoundary) {
public boolean addDepartBoundary(SysDepartBoundary departBoundary) {
return this.saveOrUpdate(departBoundary);
}
@Override
public String listJson(BusinessDepartBoundary departBoundary) {
public String listJson(SysDepartBoundary departBoundary) {
if(StringUtils.isBlank(departBoundary.getDeptId())){
throw new ServiceException("部门【id】不存在");
}
@ -197,7 +183,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
@Override
public boolean deleteDepartBoundary(String id) {
BusinessDepartBoundary departBoundary = this.baseMapper.selectById(id);
SysDepartBoundary departBoundary = this.baseMapper.selectById(id);
if (ObjectUtil.isEmpty(departBoundary)) {
throw new ServiceException("实体不存在!");
@ -212,8 +198,8 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
* @param geospatialVectorsList
* @return
*/
private List<BusinessDepartBoundary> buildBusinessDepartBoundary(List<BusinessGeospatialVectors> geospatialVectorsList,Integer areaType) {
List<BusinessDepartBoundary> resultList = new ArrayList<>();
private List<SysDepartBoundary> buildBusinessDepartBoundary(List<SysGeospatialVectors> geospatialVectorsList, Integer areaType) {
List<SysDepartBoundary> resultList = new ArrayList<>();
List<Map<String,Object>> namePathList = remoteDeptService.getNamePathList();
@ -221,7 +207,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
.collect(Collectors.groupingBy(item -> item.get("deptName").toString()));
geospatialVectorsList.forEach(param->{
BusinessDepartBoundary businessDepartBoundary = new BusinessDepartBoundary();
SysDepartBoundary businessDepartBoundary = new SysDepartBoundary();
//获取区划名称
String divisionName = param.getAdminDivisionName();

28
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictItemServiceImpl.java

@ -0,0 +1,28 @@
package org.dromara.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.system.domain.SysVectorDictItem;
import org.dromara.system.mapper.SysVectorDictItemMapper;
import org.dromara.system.service.ISysVectorDictItemService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 矢量数据字段映射关联服务类
*/
@Service
public class SysVectorDictItemServiceImpl extends ServiceImpl<SysVectorDictItemMapper, SysVectorDictItem> implements ISysVectorDictItemService {
@Override
public List<SysVectorDictItem> findDictItemByDictId(String dictId) {
LambdaQueryWrapper<SysVectorDictItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysVectorDictItem::getDictId, dictId);
return this.baseMapper.selectList(wrapper);
}
}

37
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictServiceImpl.java

@ -0,0 +1,37 @@
package org.dromara.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.system.domain.SysVectorDict;
import org.dromara.system.mapper.SysVectorDictMapper;
import org.dromara.system.service.ISysVectorDictService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 矢量数据字段映射主表服务类
*/
@Service
public class SysVectorDictServiceImpl extends ServiceImpl<SysVectorDictMapper, SysVectorDict> implements ISysVectorDictService {
@Override
public List<SysVectorDict> listVectorField() {
return this.baseMapper.listVectorField();
}
@Override
public SysVectorDict findVectorDictById(String dictId) {
if (ObjectUtil.isEmpty(dictId)){
throw new RuntimeException("【dictId】为空,参数为空!");
}
LambdaQueryWrapper<SysVectorDict> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysVectorDict::getId, dictId);
return this.baseMapper.selectOne(wrapper);
}
}

39
dk-modules/system/src/main/java/org/dromara/system/utils/BatchProcessorUtil.java

@ -0,0 +1,39 @@
package org.dromara.system.utils;
import java.util.List;
import java.util.function.Consumer;
/**
* 分批处理工具类
*/
public class BatchProcessorUtil {
/**
* 分批处理数据
*
* @param dataList 数据集合
* @param batchSize 每批处理的数据量
* @param startIndex 起始位置
* @param batchHandler 每批数据的处理逻辑
* @return 下一次的起始位置
*/
public static <T> boolean processBatches(List<T> dataList, int batchSize, int startIndex, Consumer<List<T>> batchHandler) {
if (dataList == null || dataList.isEmpty()) {
return true; // 数据为空,直接返回当前起始位置
}
int totalSize = dataList.size();
while (startIndex < totalSize) {
int endIndex = Math.min(startIndex + batchSize, totalSize);
List<T> batch = dataList.subList(startIndex, endIndex);
// 处理当前批次的数据
batchHandler.accept(batch);
// 更新起始位置
startIndex = endIndex;
}
return startIndex >= totalSize; // 返回下一次的起始位置
}
}

2
dk-modules/business/src/main/java/org/dromara/business/utils/ShpAnalysisUtil.java → dk-modules/system/src/main/java/org/dromara/system/utils/ShpAnalysisUtil.java

@ -1,4 +1,4 @@
package org.dromara.business.utils;
package org.dromara.system.utils;
import cn.hutool.core.util.ObjectUtil;
import org.geotools.data.FileDataStore;

26
dk-modules/business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml → dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml

@ -1,7 +1,7 @@
<?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="org.dromara.business.mapper.BusinessDepartBoundaryMapper">
<select id="listSysDepartBoundary" resultType="org.dromara.business.domain.BusinessDepartBoundary">
<mapper namespace="org.dromara.system.mapper.SysDepartBoundaryMapper">
<select id="listSysDepartBoundary" resultType="org.dromara.system.domain.SysDepartBoundary">
SELECT
db.id,
db.dept_id,
@ -14,8 +14,8 @@
db.create_by,
db.create_time
FROM
business_depart_boundary db
LEft JOIN dk_cloud.sys_dept d on db.dept_id = d.dept_id
sys_depart_boundary db
LEft JOIN sys_dept d on db.dept_id = d.dept_id
<where>
<if test="condition.deptId != null and condition.deptId != ''">
and (db.dept_id = #{condition.deptId} or d.parent_id = #{condition.deptId})
@ -28,7 +28,7 @@
</select>
<select id="listSysDepartBoundaryGeomFromText" resultType="org.dromara.business.domain.BusinessDepartBoundary">
<select id="listSysDepartBoundaryGeomFromText" resultType="org.dromara.system.domain.SysDepartBoundary">
SELECT
db.id,
db.dept_id,
@ -41,8 +41,8 @@
db.create_by,
db.create_time
FROM
business_depart_boundary db
LEft JOIN dk_cloud.sys_dept d on db.dept_id = d.dept_id
sys_depart_boundary db
LEft JOIN sys_dept d on db.dept_id = d.dept_id
<where>
<if test="condition.deptId != null and condition.deptId != ''">
and (db.dept_id = #{condition.deptId} or d.parent_id = #{condition.deptId})
@ -57,7 +57,7 @@
</select>
<select id="queryByDeptId" resultType="org.dromara.business.domain.BusinessDepartBoundary">
<select id="queryByDeptId" resultType="org.dromara.system.domain.SysDepartBoundary">
SELECT
db.id,
db.dept_id,
@ -70,13 +70,13 @@
db.create_by,
db.create_time
FROM
business_depart_boundary db
LEft JOIN dk_cloud.sys_dept d on db.dept_id = d.dept_id
sys_depart_boundary db
LEft JOIN sys_dept d on db.dept_id = d.dept_id
WHERE d.id = #{deptId}
</select>
<insert id="saveBatchBoundary">
INSERT INTO business_depart_boundary (
INSERT INTO sys_depart_boundary (
dept_id,
dept_name,
community_name,
@ -138,8 +138,8 @@
)
) AS landCategoriesJson
FROM
business_depart_boundary l
LEFT JOIN dk_cloud.sys_dept d ON l.dept_id = d.dept_id
sys_depart_boundary l
LEFT JOIN sys_dept d ON l.dept_id = d.dept_id
WHERE
d.dept_id = #{param.deptId}
</select>

2
dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictItemMapper.xml → dk-modules/system/src/main/resources/mapper/system/SysVectorDictItemMapper.xml

@ -1,6 +1,6 @@
<?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="org.dromara.business.mapper.BusinessVectorDictItemMapper">
<mapper namespace="org.dromara.system.mapper.SysVectorDictItemMapper">

10
dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictMapper.xml → dk-modules/system/src/main/resources/mapper/system/SysVectorDictMapper.xml

@ -1,11 +1,11 @@
<?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="org.dromara.business.mapper.BusinessVectorDictMapper">
<mapper namespace="org.dromara.system.mapper.SysVectorDictMapper">
<resultMap id="fieldResultMap" type="org.dromara.business.domain.BusinessVectorDict">
<resultMap id="fieldResultMap" type="org.dromara.system.domain.SysVectorDict">
<id property="id" column="id"/>
<result property="dictCode" column="dictCode"/>
<collection property="fieldMappingsList" ofType="org.dromara.business.domain.BusinessVectorDictItem">
<collection property="fieldMappingsList" ofType="org.dromara.system.domain.SysVectorDictItem">
<result property="id" column="dictItemId"/>
<result property="itemValue" column="mappingValue"/>
<result property="dictId" column="dictId"/>
@ -20,9 +20,9 @@
m.id AS dictItemId,
m.item_value AS mappingValue
FROM
business_vector_dict f
sys_vector_dict f
LEFT JOIN
business_vector_dict_item m ON f.id = m.dict_id
sys_vector_dict_item m ON f.id = m.dict_id
</select>
</mapper>

13
dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java

@ -79,9 +79,14 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService {
return flwTaskService.getPermissions();
}
// @Override
// public boolean completeTask(RemoteCompleteTask completeTask) {
// return workflowService.completeTask(completeTask);
// }
@Override
public boolean processInvalid(Long instanceId) {
return workflowService.processInvalid(instanceId);
}
@Override
public boolean completeTask(RemoteCompleteTask completeTask) {
return workflowService.completeTask(completeTask);
}
}

7
dk-modules/workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java

@ -83,4 +83,11 @@ public interface WorkflowService {
* @return 结果
*/
boolean completeTask(RemoteCompleteTask completeTask);
/**
* 作废流程
* @param instanceId
* @return
*/
boolean processInvalid(Long instanceId);
}

13
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java

@ -10,6 +10,7 @@ import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.domain.bo.CompleteTaskBo;
import org.dromara.workflow.domain.bo.FlowInvalidBo;
import org.dromara.workflow.domain.bo.StartProcessBo;
import org.dromara.workflow.service.IFlwDefinitionService;
import org.dromara.workflow.service.IFlwInstanceService;
@ -129,4 +130,16 @@ public class WorkflowServiceImpl implements WorkflowService {
public boolean completeTask(RemoteCompleteTask completeTask) {
return flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class));
}
/**
* 作废流程
* @param instanceId
* @return
*/
@Override
public boolean processInvalid(Long instanceId) {
FlowInvalidBo flowInvalidBo = new FlowInvalidBo();
flowInvalidBo.setId(instanceId);
return flwInstanceService.processInvalid(flowInvalidBo);
}
}

2
pom.xml

@ -86,7 +86,7 @@
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<nacos.server>127.0.0.1:8848</nacos.server>
<nacos.server>114.235.183.147:8848</nacos.server>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<nacos.username>nacos</nacos.username>

Loading…
Cancel
Save