diff --git a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java index 0bc8945..50a5924 100644 --- a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java +++ b/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 getPermissions(); + + /** + * 作废流程 + * + * @param instanceId 流程id + * @return 结果 + */ + boolean processInvalid(Long instanceId); } diff --git a/dk-modules/business/pom.xml b/dk-modules/business/pom.xml index 6b6ef01..8cb8480 100644 --- a/dk-modules/business/pom.xml +++ b/dk-modules/business/pom.xml @@ -114,33 +114,6 @@ api-workflow - - - org.geotools - gt-geojson - ${geotools.version} - - - org.geotools - gt-geometry - ${geotools.version} - - - org.geotools - gt-epsg-hsql - ${geotools.version} - - - org.geotools - gt-jts-wrapper - ${geotools.version} - - - org.geotools - gt-shapefile - 29.5 - - ${project.artifactId} diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java index db4f6ed..d1371ab 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java +++ b/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 map) { + return R.ok(map); } } diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/WebhookController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/WebhookController.java new file mode 100644 index 0000000..e54b6b4 --- /dev/null +++ b/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}"; + } +} diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java deleted file mode 100644 index 75926dd..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java +++ /dev/null @@ -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 { - Page listSysDepartBoundary(Page page,@Param("condition") BusinessDepartBoundary sysDepartBoundary); - - List listSysDepartBoundaryGeomFromText(@Param("condition") BusinessDepartBoundary sysDepartBoundary); - /** - * 通过部门编码获取部门边界数据 - * @param deptId 部门编码 - * @return String - */ - List queryByDeptId(@Param("deptId") String deptId); - - void saveBatchBoundary(@Param("list") List boundaryList); - - String listJson(@Param("param") BusinessDepartBoundary departBoundary); - -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java deleted file mode 100644 index 252eb43..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java +++ /dev/null @@ -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 { - - IPage listPatrolAreas(Page page, @Param("condition") BusinessPatrolAreasBo patrolAreasBo, @Param("deptIds") List deptIds); - - List listPatrolAreas(@Param("condition") BusinessPatrolAreasBo patrolAreasBo, @Param("deptIds") List deptIds); -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictItemMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictItemMapper.java deleted file mode 100644 index 7831c13..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictItemMapper.java +++ /dev/null @@ -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 { - -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictMapper.java deleted file mode 100644 index 403886e..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictMapper.java +++ /dev/null @@ -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 { - List listVectorField(); -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java deleted file mode 100644 index a1e55a1..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java +++ /dev/null @@ -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{ - TableDataInfo listSysDepartBoundary(PageQuery page, BusinessDepartBoundary departBoundary); - - List listSysDepartBoundaryGeomFromText(BusinessDepartBoundary departBoundary); - - List 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); -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java deleted file mode 100644 index 1d7aec4..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java +++ /dev/null @@ -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 { - TableDataInfo pagePatrolAreas(PageQuery pageQuery, BusinessPatrolAreasBo patrolAreasBo); - - List listPatrolAreas(BusinessPatrolAreasBo patrolAreasBo); - - void addPatrolAreas(MultipartFile file); - - boolean updatePatrolAreas(BusinessPatrolAreas patrolAreas); - - List exportXls(BusinessPatrolAreas patrolAreas); - -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictItemService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictItemService.java deleted file mode 100644 index 03f4553..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictItemService.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.dromara.business.service; - - -import org.dromara.business.domain.BusinessVectorDictItem; - -import java.util.List; - -public interface IBusinessVectorDictItemService { - - List findDictItemByDictId(String dictId); - -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictService.java deleted file mode 100644 index 620416f..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictService.java +++ /dev/null @@ -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 listVectorField(); - - BusinessVectorDict findVectorDictById(String dictId); - - -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java index f61671b..613e2a8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java +++ b/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); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index 5db0bbe..aeca005 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/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 pageBusinessAlertCancel(BusinessAlertBo bo, PageQuery pageQuery) { - bo.setHandleType(BusinessStatusEnum.CANCEL.getStatus()); + bo.setHandleType(BusinessStatusEnum.INVALID.getStatus()); QueryWrapper wrapper = buildQueryWrapper(bo); Page 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 buildQueryWrapper(BusinessAlertBo bo) { QueryWrapper wrapper = new QueryWrapper<>(); + //根据当前用户职能获取识别类型 +// List posts = LoginHelper.getLoginUser().getPosts(); + //排除状态为验证状态预警 wrapper.ne("ba.handle_type", BusinessStatusEnum.VERIFY.getStatus()); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java deleted file mode 100644 index 670e32d..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java +++ /dev/null @@ -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 implements IBusinessPatrolAreasService { - - private final IBusinessVectorDictService vectorDictService; - - @DubboReference - private RemoteUserService remoteUserService; - @DubboReference - private RemoteDeptService remoteDeptService; - - @Override - public TableDataInfo pagePatrolAreas(PageQuery pageQuery, BusinessPatrolAreasBo patrolAreasBo) { - LoginUser user = LoginHelper.getLoginUser(); - List 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 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 exportXls(BusinessPatrolAreas patrolAreas) { - LambdaQueryWrapper wrapper = buildWrapper(patrolAreas); - - return this.list(wrapper); - } - - @Override - public void addPatrolAreas(MultipartFile file) { - List geospatialVectorsList = new ArrayList<>(); - try { - //1、首先调用解析工具拿到解析的字段集合 - InputStream inputStream = file.getInputStream(); - List> mapList = ShpAnalysisUtil.analysisShpFile(inputStream); - - // 3. 构建字典map - List fieldsInfoList = vectorDictService.listVectorField(); - - Map> dictMap = fieldsInfoList - .stream() - .collect(Collectors.toMap( - BusinessVectorDict::getDictCode, - v -> v.getFieldMappingsList().stream() - .map(mapping -> mapping.getItemValue().toLowerCase()) // 转小写 - .collect(Collectors.toList()) - )); - - // 4. 遍历 mapList,替换映射关系并只保留有效条目 - List> resultList = mapList.stream() - .map(originalMap -> originalMap.entrySet().stream() - .filter(entry -> { - String keyLower = entry.getKey().toLowerCase(); // 将 mapList 中的 key 转换为小写 - // 遍历 dictMap 的所有 List,检查其中是否包含该 key - return dictMap.values().stream() - .anyMatch(list -> list.contains(keyLower)); // 判断 dictMap 中的 List 是否包含该 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 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 areasList = buildBusinessPatrolAreas(geospatialVectorsList); - - - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 根据解析shp得到的内容封装到BusinessPatrolAreas这个类里面 - * @param paramList - * @return - */ - private List buildBusinessPatrolAreas(List paramList) { - List 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 buildWrapper(BusinessPatrolAreas patrolAreas) { - LambdaQueryWrapper 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; - } -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictItemServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictItemServiceImpl.java deleted file mode 100644 index cebde8c..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictItemServiceImpl.java +++ /dev/null @@ -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 implements IBusinessVectorDictItemService { - - - @Override - public List findDictItemByDictId(String dictId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(BusinessVectorDictItem::getDictId, dictId); - - return this.baseMapper.selectList(wrapper); - } -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictServiceImpl.java deleted file mode 100644 index 363d5b3..0000000 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictServiceImpl.java +++ /dev/null @@ -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 implements IBusinessVectorDictService { - - - @Override - public List listVectorField() { - return this.baseMapper.listVectorField(); - } - - @Override - public BusinessVectorDict findVectorDictById(String dictId) { - if (ObjectUtil.isEmpty(dictId)){ - throw new RuntimeException("【dictId】为空,参数为空!"); - } - - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(BusinessVectorDict::getId, dictId); - - return this.baseMapper.selectOne(wrapper); - } -} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java index 3cb1158..bec95c4 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java @@ -44,7 +44,7 @@ public class BusinessVideoServiceImpl implements IBusinessVideoService { ResponseEntity response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { Map 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 response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { Map 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 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 response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { Map 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 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 response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { Map resultMap = objectMapper.readValue(response.getBody(), Map.class); - result = (Boolean) resultMap.get("status"); + result = (Boolean) resultMap.get("result"); log.info("设置录像流播放位置成功: {}", resultMap); } } catch (Exception e) { diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index 0c969b4..aca5e87 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/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 diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml deleted file mode 100644 index 51d376f..0000000 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java b/dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java index f0291ab..ea6b2e0 100644 --- a/dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java +++ b/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 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> 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对象存储") diff --git a/dk-modules/system/pom.xml b/dk-modules/system/pom.xml index d6f9ac7..37e2ae9 100644 --- a/dk-modules/system/pom.xml +++ b/dk-modules/system/pom.xml @@ -104,6 +104,33 @@ api-resource + + + org.geotools + gt-geojson + ${geotools.version} + + + org.geotools + gt-geometry + ${geotools.version} + + + org.geotools + gt-epsg-hsql + ${geotools.version} + + + org.geotools + gt-jts-wrapper + ${geotools.version} + + + org.geotools + gt-shapefile + 29.5 + + diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java similarity index 80% rename from dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java rename to dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java index 2062ca0..53ba22a 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java +++ b/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 listJson(BusinessDepartBoundary departBoundary) { + public R 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 queryPageList(BusinessDepartBoundary departBoundary, PageQuery pageQuery) { + public TableDataInfo 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 updateDepartBoundary(@RequestBody BusinessDepartBoundary departBoundary) { + public R updateDepartBoundary(@RequestBody SysDepartBoundary departBoundary) { return toAjax(departBoundaryService.updateDepartBoundary(departBoundary)); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java b/dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java similarity index 82% rename from dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java rename to dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java index d36f1b4..49a2629 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java +++ b/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; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessGeospatialVectors.java b/dk-modules/system/src/main/java/org/dromara/system/domain/SysGeospatialVectors.java similarity index 96% rename from dk-modules/business/src/main/java/org/dromara/business/domain/BusinessGeospatialVectors.java rename to dk-modules/system/src/main/java/org/dromara/system/domain/SysGeospatialVectors.java index 4ab224c..fcae39c 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessGeospatialVectors.java +++ b/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 diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDict.java b/dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDict.java similarity index 81% rename from dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDict.java rename to dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDict.java index dbb7ba1..ff573e0 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDict.java +++ b/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 fieldMappingsList; + private List fieldMappingsList; } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDictItem.java b/dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDictItem.java similarity index 85% rename from dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDictItem.java rename to dk-modules/system/src/main/java/org/dromara/system/domain/SysVectorDictItem.java index 1e0f829..9d4afc5 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessVectorDictItem.java +++ b/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 { /** * diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java new file mode 100644 index 0000000..3cf5045 --- /dev/null +++ b/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 { + Page listSysDepartBoundary(Page page,@Param("condition") SysDepartBoundary sysDepartBoundary); + + List listSysDepartBoundaryGeomFromText(@Param("condition") SysDepartBoundary sysDepartBoundary); + /** + * 通过部门编码获取部门边界数据 + * @param deptId 部门编码 + * @return String + */ + List queryByDeptId(@Param("deptId") String deptId); + + void saveBatchBoundary(@Param("list") List boundaryList); + + String listJson(@Param("param") SysDepartBoundary departBoundary); + +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictItemMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictItemMapper.java new file mode 100644 index 0000000..8d79c2e --- /dev/null +++ b/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 { + +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictMapper.java new file mode 100644 index 0000000..eaf632f --- /dev/null +++ b/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 { + List listVectorField(); +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java new file mode 100644 index 0000000..c5c9f7c --- /dev/null +++ b/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{ + TableDataInfo listSysDepartBoundary(PageQuery page, SysDepartBoundary departBoundary); + + List listSysDepartBoundaryGeomFromText(SysDepartBoundary departBoundary); + + List 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); +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictItemService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictItemService.java new file mode 100644 index 0000000..908af81 --- /dev/null +++ b/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 findDictItemByDictId(String dictId); + +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictService.java new file mode 100644 index 0000000..77f57f8 --- /dev/null +++ b/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 listVectorField(); + + SysVectorDict findVectorDictById(String dictId); + + +} diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java similarity index 70% rename from dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java rename to dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java index 48d7eef..78af492 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java +++ b/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 implements IBusinessDepartBoundaryService { +public class SysDepartBoundaryServiceImpl extends ServiceImpl implements ISysDepartBoundaryService { - private final IBusinessVectorDictService vectorDictService; + private final ISysVectorDictService vectorDictService; @DubboReference RemoteDeptService remoteDeptService; - private final DataSource dataSource; - @Override - public TableDataInfo listSysDepartBoundary(PageQuery pageQuery, BusinessDepartBoundary departBoundary) { - Page page = baseMapper.listSysDepartBoundary(pageQuery.build(),departBoundary); + public TableDataInfo listSysDepartBoundary(PageQuery pageQuery, SysDepartBoundary departBoundary) { + Page page = baseMapper.listSysDepartBoundary(pageQuery.build(),departBoundary); return TableDataInfo.build(page); } @Override - public List listSysDepartBoundaryGeomFromText(BusinessDepartBoundary departBoundary) { + public List listSysDepartBoundaryGeomFromText(SysDepartBoundary departBoundary) { return baseMapper.listSysDepartBoundaryGeomFromText(departBoundary); } @Override - public List queryByDeptId(String deptId) { + public List queryByDeptId(String deptId) { return baseMapper.queryByDeptId(deptId); } @@ -79,10 +65,10 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl geospatialVectorsList = buildGeospatialVector(file); + List geospatialVectorsList = buildGeospatialVector(file); //6、生成新的对象集合存储数据表中 - List boundaryList = buildBusinessDepartBoundary(geospatialVectorsList,areaType); + List boundaryList = buildBusinessDepartBoundary(geospatialVectorsList,areaType); // 分批处理 int startIndex = 0; // 从第 0 条开始 @@ -103,20 +89,20 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl buildGeospatialVector(MultipartFile file){ - List geospatialVectorsList = new ArrayList<>(); + private List buildGeospatialVector(MultipartFile file){ + List geospatialVectorsList = new ArrayList<>(); try { //1、首先调用解析工具拿到解析的字段集合 InputStream inputStream = file.getInputStream(); List> mapList = ShpAnalysisUtil.analysisShpFile(inputStream); // 3. 构建字典map - List fieldsInfoList = vectorDictService.listVectorField(); + List fieldsInfoList = vectorDictService.listVectorField(); Map> 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 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 buildBusinessDepartBoundary(List geospatialVectorsList,Integer areaType) { - List resultList = new ArrayList<>(); + private List buildBusinessDepartBoundary(List geospatialVectorsList, Integer areaType) { + List resultList = new ArrayList<>(); List> namePathList = remoteDeptService.getNamePathList(); @@ -221,7 +207,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl item.get("deptName").toString())); geospatialVectorsList.forEach(param->{ - BusinessDepartBoundary businessDepartBoundary = new BusinessDepartBoundary(); + SysDepartBoundary businessDepartBoundary = new SysDepartBoundary(); //获取区划名称 String divisionName = param.getAdminDivisionName(); diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictItemServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictItemServiceImpl.java new file mode 100644 index 0000000..569bf18 --- /dev/null +++ b/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 implements ISysVectorDictItemService { + + + @Override + public List findDictItemByDictId(String dictId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysVectorDictItem::getDictId, dictId); + + return this.baseMapper.selectList(wrapper); + } +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictServiceImpl.java new file mode 100644 index 0000000..13bc5a3 --- /dev/null +++ b/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 implements ISysVectorDictService { + + + @Override + public List listVectorField() { + return this.baseMapper.listVectorField(); + } + + @Override + public SysVectorDict findVectorDictById(String dictId) { + if (ObjectUtil.isEmpty(dictId)){ + throw new RuntimeException("【dictId】为空,参数为空!"); + } + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysVectorDict::getId, dictId); + + return this.baseMapper.selectOne(wrapper); + } +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/utils/BatchProcessorUtil.java b/dk-modules/system/src/main/java/org/dromara/system/utils/BatchProcessorUtil.java new file mode 100644 index 0000000..000c01f --- /dev/null +++ b/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 boolean processBatches(List dataList, int batchSize, int startIndex, Consumer> batchHandler) { + if (dataList == null || dataList.isEmpty()) { + return true; // 数据为空,直接返回当前起始位置 + } + + int totalSize = dataList.size(); + while (startIndex < totalSize) { + int endIndex = Math.min(startIndex + batchSize, totalSize); + List batch = dataList.subList(startIndex, endIndex); + + // 处理当前批次的数据 + batchHandler.accept(batch); + + // 更新起始位置 + startIndex = endIndex; + } + + return startIndex >= totalSize; // 返回下一次的起始位置 + } +} diff --git a/dk-modules/business/src/main/java/org/dromara/business/utils/ShpAnalysisUtil.java b/dk-modules/system/src/main/java/org/dromara/system/utils/ShpAnalysisUtil.java similarity index 99% rename from dk-modules/business/src/main/java/org/dromara/business/utils/ShpAnalysisUtil.java rename to dk-modules/system/src/main/java/org/dromara/system/utils/ShpAnalysisUtil.java index 58a8268..e2a384e 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/utils/ShpAnalysisUtil.java +++ b/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; diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml b/dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml similarity index 84% rename from dk-modules/business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml rename to dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml index 4a17ca7..01704d2 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml @@ -1,7 +1,7 @@ - - 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 and (db.dept_id = #{condition.deptId} or d.parent_id = #{condition.deptId}) @@ -28,7 +28,7 @@ - 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 and (db.dept_id = #{condition.deptId} or d.parent_id = #{condition.deptId}) @@ -57,7 +57,7 @@ - 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} - 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} diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictItemMapper.xml b/dk-modules/system/src/main/resources/mapper/system/SysVectorDictItemMapper.xml similarity index 67% rename from dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictItemMapper.xml rename to dk-modules/system/src/main/resources/mapper/system/SysVectorDictItemMapper.xml index b217399..80517de 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictItemMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/SysVectorDictItemMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictMapper.xml b/dk-modules/system/src/main/resources/mapper/system/SysVectorDictMapper.xml similarity index 73% rename from dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictMapper.xml rename to dk-modules/system/src/main/resources/mapper/system/SysVectorDictMapper.xml index 215e4aa..3030df7 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessVectorDictMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/SysVectorDictMapper.xml @@ -1,11 +1,11 @@ - + - + - + @@ -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 diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java index 2f0b230..f9def49 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java +++ b/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); + } } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java index fa3ab94..8894d51 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java +++ b/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); } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java index 68fbb7f..48864b8 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java +++ b/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); + } } diff --git a/pom.xml b/pom.xml index 2eff724..23aa72a 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ dev - 127.0.0.1:8848 + 114.235.183.147:8848 DEFAULT_GROUP DEFAULT_GROUP nacos