diff --git a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java index d475630..2237092 100644 --- a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java +++ b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java @@ -15,5 +15,5 @@ public interface RemoteBusinessAlertService { * @param businessId 业务id(预警、工单) * @param flowStatus 流程状态 */ - void updateAlertStatus(String businessId, String flowStatus); + void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType); } 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-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java index 77c73ec..eabb443 100644 --- a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java +++ b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java @@ -44,6 +44,16 @@ public class ProcessCreateTaskEvent extends RemoteApplicationEvent { */ private String businessId; + /** + * 处置预警类型 + */ + private String alertType; + + /** + * 是否违建 + */ + private Boolean isIllegal; + public ProcessCreateTaskEvent() { super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null)); } diff --git a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessEvent.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessEvent.java index f0f18d1..b8b7646 100644 --- a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessEvent.java +++ b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessEvent.java @@ -45,6 +45,16 @@ public class ProcessEvent extends RemoteApplicationEvent { */ private Map params; + /** + * 预警类型 + */ + private String alertType; + + /** + * 是否违建 + */ + private Boolean isIllegal; + /** * 当为true时为申请人节点办理 */ 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/config/ZlmConfig.java b/dk-modules/business/src/main/java/org/dromara/business/config/ZlmConfig.java new file mode 100644 index 0000000..d88f95c --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/config/ZlmConfig.java @@ -0,0 +1,88 @@ +package org.dromara.business.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +/** + * 视频流配置类 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "zlm") +public class ZlmConfig { + + /** + * 请求url + */ + private String apiUrl; + /** + *应用名 + */ + private String app; + /** + * 流 id + */ + private String stream; + + /** + * 0 为 hls,1 为 mp4 + */ + private String type; + /** + * api 操作密钥 + */ + private String secret; + /** + * 虚拟主机 + */ + private String vhost; + + /** + * mp4 录像切片时间大小,单位秒,置 0 则采用配置项 + */ + private Integer maxSecond; + + /** + * 截图需要的url + */ + private String rtmp; + + /** + * 开始录制url + */ + private String startRecordUrl; + + /** + * 停止录制url + */ + private String stopRecordUrl; + + /** + * 录制状态url + */ + private String isRecordUrl; + + /** + * 设置录像速度url + */ + private String recordSpeedUrl; + + /** + * 获取截图url + */ + private String snapUrl; + + /** + * 设置录像流播放位置 + */ + private String seekRecordStampUrl; + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } +} + diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java index f5b9be9..70fa519 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java @@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.model.StatObj; -import org.dromara.business.service.BusinessAlertStatisticsService; +import org.dromara.business.service.IBusinessAlertStatisticsService; import org.dromara.common.core.domain.R; import org.dromara.common.web.core.BaseController; import org.springframework.web.bind.annotation.GetMapping; @@ -24,7 +24,7 @@ import java.util.Map; @RequestMapping("/alert/statistics") public class BusinessAlertStatisticsController extends BaseController { - private final BusinessAlertStatisticsService statisticsService; + private final IBusinessAlertStatisticsService statisticsService; @Operation(summary="panel看板数据", description="panel看板数据") @GetMapping(value = "/panel/count") @@ -32,8 +32,6 @@ public class BusinessAlertStatisticsController extends BaseController { return R.ok(statisticsService.countPanelAlert(businessAlertBo)); } - - //饼图显示每个月根据部门 @Operation(summary="根据月份显示预警个数", description="根据月份显示预警个数") @GetMapping(value = "/month/count") @@ -65,9 +63,15 @@ public class BusinessAlertStatisticsController extends BaseController { //预警对比统计 //1、处理状态柱状图,x轴为选中的部门 //2、预警类型柱状图,x轴为选中的部门 - @Operation(summary="预警对比统计", description="预警对比统计") - @GetMapping(value = "/compare/count") - public R>> countAlertCompare(BusinessAlertBo businessAlertBo) { - return R.ok(statisticsService.countAlertCompare(businessAlertBo)); + @Operation(summary="预警对比统计(预警状态)", description="预警对比统计(预警状态)") + @GetMapping(value = "/compare/status/count") + public R>> countAlertStatusCompare(BusinessAlertBo businessAlertBo) { + return R.ok(statisticsService.countAlertStatusCompare(businessAlertBo)); + } + + @Operation(summary="预警对比统计(预警类型)", description="预警对比统计(预警类型)") + @GetMapping(value = "/compare/type/count") + public R>> countAlertTypeCompare(BusinessAlertBo businessAlertBo) { + return R.ok(statisticsService.countAlertTypeCompare(businessAlertBo)); } } 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 new file mode 100644 index 0000000..d1371ab --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java @@ -0,0 +1,100 @@ +package org.dromara.business.controller; + + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +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.*; + +import java.util.Map; + +/** + * rtmp默认端口1935, rtsp默认端口554 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/video") +@Tag(name = "ZLMediaKit视频流相关操作") +public class BusinessVideoController { + + private final IBusinessVideoService businessVideoService; + + + /** + * 开始录制 + */ + @Operation(summary ="开始录制",description = "开始录制") + @GetMapping("/startRecord") + public R startRecording() { + return businessVideoService.startRecording()?R.ok("启动录制成功!"):R.fail("启动录制失败!"); + } + + /** + * 停止录制 + */ + @Operation(summary ="停止录制",description = "停止录制") + @GetMapping("/stopRecord") + public R stopRecording() { + return businessVideoService.stopRecording()?R.ok("停止成功!"):R.fail("停止失败!"); + } + + /** + * 获取录制状态 + */ + @Operation(summary ="获取录制状态",description = "获取录制状态") + @GetMapping("/isRecording") + public R isRecording() { + return R.ok("获取录制状态!",businessVideoService.isRecording()); + } + + /** + * 获取截图 + */ + @Operation(summary ="获取截图",description = "获取截图",parameters = { + @Parameter(name = "timeoutSec",description = "截图失败超时时间"), + @Parameter(name = "expireSec",description = "截图的过期时间,该时间内产生的截图都会作为缓存返回") + }) + @GetMapping("/getSnap") + public R getSnap(@RequestParam("timeoutSec") Integer timeoutSec,@RequestParam("expireSec") Integer expireSec) { + return R.ok("截图成功!",businessVideoService.getSnap(timeoutSec,expireSec)); + } + + + /** + * 设置录像流播放位置(官方提供的接口有问题)暂时不用 + */ + @Operation(summary ="设置录像流播放位置",description = "设置录像流播放位置",parameters = { + @Parameter(name = "stamp",description = "要设置的录像播放位置") + }) + @GetMapping("/seekRecordStamp") + public R seekRecordStamp(@RequestParam("stamp") Integer stamp) { + return businessVideoService.seekRecordStamp(stamp)?R.ok("设置录像流播放位置成功!"):R.fail("设置录像流播放位置失败!"); + } + + /** + * 设置录像速度(官方提供的接口有问题)暂时不用 + */ + @Operation(summary ="设置录像速度",description = "设置录像速度",parameters = { + @Parameter(name = "speed",description = "要设置的录像倍速") + }) + @GetMapping("/setRecordSpeed") + public R setRecordSpeed(@RequestParam("speed") Double speed) { + 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/domain/BusinessAlert.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java index cbe19b0..80ac27e 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java @@ -64,10 +64,10 @@ public class BusinessAlert extends BaseEntity { private String images; /** - * 预警类型 + * 识别类型 */ - @TableField(value = "alert_type",typeHandler = JacksonTypeHandler.class) - private List alertType; + @TableField(value = "identify_type",typeHandler = JacksonTypeHandler.class) + private List identifyType; /** * 纬度 @@ -80,9 +80,9 @@ public class BusinessAlert extends BaseEntity { private Long lng; /** - * 任务类型 + * 预警类型 */ - private String taskHandleType; + private String alertType; /** @@ -140,7 +140,7 @@ public class BusinessAlert extends BaseEntity { /** * 是否违建 0:否,1:是 */ - private Long isIllegal; + private Boolean isIllegal; /** * 部门id diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java index 9ce7dbf..b69c43b 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java @@ -47,9 +47,9 @@ public class BusinessAlertBo { private String images; /** - * 预警类型 + * 识别类型 */ - private List alertType; + private List identifyType; /** * 纬度 @@ -62,9 +62,9 @@ public class BusinessAlertBo { private Long lng; /** - * 任务类型 + * 预警类型 */ - private String taskHandleType; + private String alertType; /** * 流程处置状态(verify:验证,cancel:已撤销,draft:草稿,waiting:待审核,finish:已完成,invalid:已作废,back:已退回,termination:已终止) @@ -117,7 +117,7 @@ public class BusinessAlertBo { /** * 是否违建 0:否,1:是 */ - private Long isIllegal; + private Boolean isIllegal; /** * 部门id diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java index 256ae5a..e228dd1 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java @@ -59,9 +59,9 @@ public class BusinessAlertVo implements Serializable { /** - * 预警类型 + * 识别类型 */ - private List alertType; + private List identifyType; /** * 纬度 @@ -76,10 +76,10 @@ public class BusinessAlertVo implements Serializable { private Long lng; /** - * 任务类型 + * 预警类型 */ - @ExcelProperty(value = "任务类型") - private String taskHandleType; + @ExcelProperty(value = "预警类型") + private String alertType; /** @@ -139,7 +139,7 @@ public class BusinessAlertVo implements Serializable { * 是否违建 0:否,1:是 */ @ExcelProperty(value = "是否违建 0:否,1:是") - private Long isIllegal; + private Boolean isIllegal; /** * 部门id diff --git a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java index 58c7a30..be01604 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java @@ -23,7 +23,7 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic * @param flowStatus 流程状态 */ @Override - public void updateAlertStatus(String businessId, String flowStatus) { - businessAlertService.updateAlertStatus(businessId,flowStatus); + public void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType) { + businessAlertService.updateAlertStatus(businessId,flowStatus,isIllegal,alertType); } } diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index 5737e0e..2fcee06 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java @@ -23,22 +23,32 @@ import java.util.Map; */ public interface BusinessAlertMapper extends BaseMapperPlus { + @DataPermission( + @DataColumn(key = "deptName", value = "ba.dept_id") + ) Page pageBusinessAlert(Page page, QueryWrapper ew); + @DataPermission( + @DataColumn(key = "deptName", value = "ba.dept_id") + ) Page pageAlertFinish(Page page, QueryWrapper ew); + @DataPermission( + @DataColumn(key = "deptName", value = "ba.dept_id") + ) Page pageAlertTodo(Page page, QueryWrapper ew); - Page pageBusinessAlertCancel(Page build, QueryWrapper ew); - @DataPermission( @DataColumn(key = "deptName", value = "ba.dept_id") ) - List> listMonthAlert(@Param("param") BusinessAlertBo businessAlertBo); + Page pageBusinessAlertCancel(Page build, QueryWrapper ew); @DataPermission( @DataColumn(key = "deptName", value = "ba.dept_id") ) + List> listMonthAlert(@Param("param") BusinessAlertBo businessAlertBo); + + List> listDepartAlert(@Param("param") BusinessAlertBo businessAlertBo); @DataPermission( @@ -46,9 +56,7 @@ public interface BusinessAlertMapper extends BaseMapperPlus> listMonthAlertStatus(@Param("param")BusinessAlertBo businessAlertBo); - @DataPermission( - @DataColumn(key = "deptName", value = "ba.dept_id") - ) + List> listDepartAlertStatus(@Param("param") BusinessAlertBo businessAlertBo); @DataPermission( @@ -59,6 +67,10 @@ public interface BusinessAlertMapper extends BaseMapperPlus> countPanelAlert(BusinessAlertBo businessAlertBo); + List> countPanelAlert(@Param("param")BusinessAlertBo businessAlertBo); + @DataPermission( + @DataColumn(key = "deptName", value = "ba.dept_id") + ) + List> countAlertTypeCompare(@Param("param") BusinessAlertBo businessAlertBo); } 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/IBusinessAlertService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java index 351b244..7d7d5a8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java @@ -62,7 +62,7 @@ public interface IBusinessAlertService { * @param businessId * @param flowStatus */ - void updateAlertStatus(String businessId, String flowStatus); + void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType); TableDataInfo getInfo(BusinessAlertBo bo, PageQuery pageQuery, String alertCode); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertStatisticsService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java similarity index 70% rename from dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertStatisticsService.java rename to dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java index 67f47f5..d95ba00 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertStatisticsService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java @@ -7,7 +7,7 @@ import org.dromara.business.domain.model.StatObj; import java.util.List; import java.util.Map; -public interface BusinessAlertStatisticsService { +public interface IBusinessAlertStatisticsService { List countMonthAlert(BusinessAlertBo businessAlertBo); List countDepartAlert(BusinessAlertBo businessAlertBo); @@ -16,7 +16,9 @@ public interface BusinessAlertStatisticsService { List countDepartAlertStatus(BusinessAlertBo businessAlertBo); - List> countAlertCompare(BusinessAlertBo businessAlertBo); + List> countAlertStatusCompare(BusinessAlertBo businessAlertBo); List countPanelAlert(BusinessAlertBo businessAlertBo); + + List> countAlertTypeCompare(BusinessAlertBo businessAlertBo); } 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 4b11042..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); - - 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 new file mode 100644 index 0000000..613e2a8 --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java @@ -0,0 +1,36 @@ +package org.dromara.business.service; + + +public interface IBusinessVideoService { + /** + * 开始录制 + */ + Boolean startRecording(); + + /** + * 停止录制 + */ + Boolean stopRecording(); + + /** + * 获取录制状态 + */ + Boolean isRecording(); + + /** + * 获取截图 + */ + String getSnap(Integer timeoutSec, Integer expireSec); + + + /** + * 设置录像速度(官方提供的接口有问题)暂时不用 + */ + Boolean setRecordSpeed(Double speed); + + + /** + * 设置录像速度(官方提供的接口有问题)暂时不用 + */ + 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 f27fb7c..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; @@ -102,10 +103,15 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { * @param flowStatus */ @Override - public void updateAlertStatus(String businessId, String flowStatus) { + public void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.set(BusinessAlert::getHandleType, BusinessStatusEnum.getByStatus(flowStatus)); - + wrapper.set(BusinessAlert::getHandleType, BusinessStatusEnum.getByStatus(flowStatus).getStatus()); + if (ObjectUtil.isNotEmpty(isIllegal)){ + wrapper.set(BusinessAlert::getIsIllegal, isIllegal); + } + if (ObjectUtil.isNotEmpty(alertType)){ + wrapper.set(BusinessAlert::getAlertType, alertType); + } wrapper.eq(BusinessAlert::getId, businessId); this.baseMapper.update(wrapper); @@ -135,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); @@ -196,8 +202,6 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { } - - /** * 构建wrapper * @param bo @@ -206,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/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index ac0501f..3189668 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -6,12 +6,10 @@ import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.model.StatObj; import org.dromara.business.mapper.BusinessAlertMapper; -import org.dromara.business.service.BusinessAlertStatisticsService; -import org.dromara.common.core.exception.ServiceException; +import org.dromara.business.service.IBusinessAlertStatisticsService; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.RemoteDeptService; import org.dromara.system.api.domain.vo.RemoteDeptVo; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; @@ -26,7 +24,7 @@ import java.util.stream.Stream; */ @RequiredArgsConstructor @Service -public class BusinessAlertStatisticsServiceImpl implements BusinessAlertStatisticsService { +public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatisticsService { private final BusinessAlertMapper baseMapper; @@ -55,13 +53,7 @@ public class BusinessAlertStatisticsServiceImpl implements BusinessAlertStatisti @Override public ListcountDepartAlert(BusinessAlertBo businessAlertBo) { - if (ObjectUtil.isNotEmpty(LoginHelper.getDeptId())){ - List remoteDeptVoList = remoteDeptService.selectListByParentId(LoginHelper.getDeptId() + ""); - businessAlertBo.setDeptIdList(remoteDeptVoList.stream().map(RemoteDeptVo::getDeptId).toList()); - }else { - //TODO - } - + businessAlertBo.setDeptId(String.valueOf(LoginHelper.getDeptId())); List> mapList = baseMapper.listDepartAlert(businessAlertBo); return mapList.stream().map(data -> new StatObj(data.get("deptName") + "", Long.parseLong(data.get("total") + ""),"deptId",data.get("deptId"))).collect(Collectors.toList()); @@ -109,12 +101,9 @@ public class BusinessAlertStatisticsServiceImpl implements BusinessAlertStatisti * @return */ @Override - public List> countAlertCompare(BusinessAlertBo businessAlertBo) { + public List> countAlertStatusCompare(BusinessAlertBo businessAlertBo) { businessAlertBo.setDateList(buildDateList(businessAlertBo)); - List> mapList = baseMapper.countAlertCompare(businessAlertBo); - - - return mapList; + return baseMapper.countAlertCompare(businessAlertBo); } @Override @@ -131,6 +120,12 @@ public class BusinessAlertStatisticsServiceImpl implements BusinessAlertStatisti .collect(Collectors.toList()); } + @Override + public List> countAlertTypeCompare(BusinessAlertBo businessAlertBo) { + businessAlertBo.setDateList(buildDateList(businessAlertBo)); + return baseMapper.countAlertTypeCompare(businessAlertBo); + } + private List buildDateList(BusinessAlertBo businessAlertBo) { List resultList = new ArrayList<>(); String currentYear = String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); 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 new file mode 100644 index 0000000..bec95c4 --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java @@ -0,0 +1,196 @@ +package org.dromara.business.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.business.config.ZlmConfig; +import org.dromara.business.service.IBusinessVideoService; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.Map; + +@Service +@Slf4j +@RequiredArgsConstructor +public class BusinessVideoServiceImpl implements IBusinessVideoService { + + private final ZlmConfig zlmConfig; + private static final ObjectMapper objectMapper = new ObjectMapper(); + private final RestTemplate restTemplate; + + + @Override + public Boolean startRecording() { + + Boolean result = false; + String url = String.format("%s%s?app=%s&stream=%s&type=%s&vhost=%s&secret=%s", + zlmConfig.getApiUrl(), + zlmConfig.getStartRecordUrl(), + zlmConfig.getApp(), + zlmConfig.getStream(), + zlmConfig.getType(), + zlmConfig.getVhost(), + zlmConfig.getSecret()); + + //是否需要切片视频 + if (ObjectUtil.isNotEmpty(zlmConfig.getMaxSecond())){ + url = url + "&max_second=" + zlmConfig.getMaxSecond(); + } + + try { + ResponseEntity response = restTemplate.getForEntity(url, String.class); + if (response.getStatusCode().is2xxSuccessful()) { + Map resultMap = objectMapper.readValue(response.getBody(), Map.class); + result = (Boolean) resultMap.get("result"); + log.info("录制启动成功: {}", resultMap); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return result; + } + + return result; + } + + @Override + public Boolean stopRecording() { + Boolean result = false; + + String url = String.format("%s%s?app=%s&stream=%s&type=%s&vhost=%s&secret=%s", + zlmConfig.getApiUrl(), + zlmConfig.getStopRecordUrl(), + zlmConfig.getApp(), + zlmConfig.getStream(), + zlmConfig.getType(), + zlmConfig.getVhost(), + zlmConfig.getSecret()); + + try { + ResponseEntity response = restTemplate.getForEntity(url, String.class); + if (response.getStatusCode().is2xxSuccessful()) { + Map resultMap = objectMapper.readValue(response.getBody(), Map.class); + result = (Boolean) resultMap.get("result"); + log.info("录制停止成功: {}", resultMap); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return result; + } + + return result; + } + + @Override + public Boolean isRecording() { + Boolean result = false; + + String url = String.format("%s%s?app=%s&stream=%s&type=%s&vhost=%s&secret=%s", + zlmConfig.getApiUrl(), + zlmConfig.getIsRecordUrl(), + zlmConfig.getApp(), + zlmConfig.getStream(), + zlmConfig.getType(), + zlmConfig.getVhost(), + zlmConfig.getSecret()); + + try { + ResponseEntity response = restTemplate.getForEntity(url, String.class); + if (response.getStatusCode().is2xxSuccessful()) { + Map resultMap = objectMapper.readValue(response.getBody(), Map.class); + result = (Boolean) resultMap.get("status"); + log.info("获取录制状态成功: {}", resultMap); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return result; + } + + 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; + + String url = String.format("%s%s?app=%s&stream=%s&type=%s&vhost=%s&secret=%s&speed=%s", + zlmConfig.getApiUrl(), + zlmConfig.getRecordSpeedUrl(), + zlmConfig.getApp(), + zlmConfig.getStream(), + zlmConfig.getType(), + zlmConfig.getVhost(), + zlmConfig.getSecret(), + speed); + + try { + ResponseEntity response = restTemplate.getForEntity(url, String.class); + if (response.getStatusCode().is2xxSuccessful()) { + Map resultMap = objectMapper.readValue(response.getBody(), Map.class); + result = (Boolean) resultMap.get("result"); + log.info("设置录制速度成功: {}", result); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return result; + } + + return result; + } + + + @Override + public Boolean seekRecordStamp(Integer stamp) { + Boolean result = false; + + String url = String.format("%s%s?app=%s&stream=%s&vhost=%s&secret=%s&stamp=%s", + zlmConfig.getApiUrl(), + zlmConfig.getSeekRecordStampUrl(), + zlmConfig.getApp(), + zlmConfig.getStream(), + zlmConfig.getVhost(), + zlmConfig.getSecret(), + stamp); + + try { + ResponseEntity response = restTemplate.getForEntity(url, String.class); + if (response.getStatusCode().is2xxSuccessful()) { + Map resultMap = objectMapper.readValue(response.getBody(), Map.class); + result = (Boolean) resultMap.get("result"); + log.info("设置录像流播放位置成功: {}", resultMap); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return result; + } + + return result; + } +} 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 45bc1ca..aca5e87 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -118,11 +118,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + 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 76% 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 e474a14..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); } @@ -57,8 +57,8 @@ public class BusinessDepartBoundaryController extends BaseController { */ @Operation(summary ="批量新增部门区域",description = "批量新增部门区域") @RequestMapping(value = "/upload", method = RequestMethod.POST) - public R uploadShpFile(@RequestParam("file") MultipartFile file) { - return toAjax(departBoundaryService.uploadShpFile(file)); + public R uploadShpFile(@RequestParam("file") MultipartFile file,@RequestParam("areaType") Integer areaType) { + return toAjax(departBoundaryService.uploadShpFile(file,areaType)); } /** @@ -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)); } @@ -85,4 +85,8 @@ public class BusinessDepartBoundaryController extends BaseController { public R deleteDepartBoundary(@RequestParam(name = "id") String id) { return toAjax(departBoundaryService.deleteDepartBoundary(id)); } + + + + } 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 78% 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 4f3408f..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; @@ -65,9 +64,9 @@ public class BusinessDepartBoundary extends BaseEntity { private String shpNo; /** - * 0不为村级别,1为村级别 + * 区域类别 */ - private Integer villageType; + private Integer areaType; /**删除状态(0,正常,1已删除)*/ private String delFlag; 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 69% 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 e653896..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,42 +35,40 @@ 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); } @Override @Transactional(rollbackFor = Exception.class) - public boolean uploadShpFile(MultipartFile file) { + public boolean uploadShpFile(MultipartFile file,Integer areaType) { try { - List geospatialVectorsList = buildGeospatialVector(file); + List geospatialVectorsList = buildGeospatialVector(file); //6、生成新的对象集合存储数据表中 - List boundaryList = buildBusinessDepartBoundary(geospatialVectorsList); + 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) { - 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(); @@ -232,7 +218,7 @@ public class BusinessDepartBoundaryServiceImpl 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/handler/FlwAlertHandler.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java index 0e4dfbc..d17dde1 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java @@ -31,7 +31,7 @@ public class FlwAlertHandler implements FlwCommonHandler { @EventListener(condition = "#processEvent.flowCode.startsWith('alert')") @Override public void processHandler(ProcessEvent processEvent) { - alertService.updateAlertStatus(processEvent.getBusinessId(),processEvent.getStatus()); + alertService.updateAlertStatus(processEvent.getBusinessId(),processEvent.getStatus(),processEvent.getIsIllegal(),processEvent.getAlertType()); } /** @@ -43,7 +43,7 @@ public class FlwAlertHandler implements FlwCommonHandler { @EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('alert')") @Override public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) { - alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.WAITING.getStatus()); + alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.WAITING.getStatus(),processCreateTaskEvent.getIsIllegal(),processCreateTaskEvent.getAlertType()); } /** 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