From 7fcc84aa4164e14944e2e0d73ead1e315d7926e3 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Mon, 10 Mar 2025 17:20:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=84=E8=AD=A6=E5=AF=B9=E6=AF=94=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3=202=E3=80=81=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=B5=81=E5=BC=80=E5=A7=8B=E5=BD=95=E5=88=B6?= =?UTF-8?q?=E3=80=81=E5=81=9C=E6=AD=A2=E5=BD=95=E5=88=B6=E3=80=81=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=BD=95=E5=88=B6=E3=80=81=E8=8E=B7=E5=8F=96=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E6=B5=8B=E8=AF=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RemoteBusinessAlertService.java | 2 +- .../api/event/ProcessCreateTaskEvent.java | 10 + .../workflow/api/event/ProcessEvent.java | 10 + .../dromara/business/config/ZlmConfig.java | 88 ++++++++ .../BusinessAlertStatisticsController.java | 16 +- .../BusinessDepartBoundaryController.java | 8 +- .../controller/BusinessVideoController.java | 90 +++++++++ .../business/domain/BusinessAlert.java | 12 +- .../domain/BusinessDepartBoundary.java | 4 +- .../business/domain/bo/BusinessAlertBo.java | 10 +- .../business/domain/vo/BusinessAlertVo.java | 12 +- .../dubbo/RemoteBusinessAlertServiceImpl.java | 4 +- .../business/mapper/BusinessAlertMapper.java | 26 ++- .../BusinessAlertStatisticsService.java | 4 +- .../service/BusinessVideoService.java | 16 ++ .../service/IBusinessAlertService.java | 2 +- .../IBusinessDepartBoundaryService.java | 2 +- .../impl/BusinessAlertServiceImpl.java | 11 +- .../BusinessAlertStatisticsServiceImpl.java | 21 +- .../BusinessDepartBoundaryServiceImpl.java | 8 +- .../impl/BusinessVideoServiceImpl.java | 188 ++++++++++++++++++ .../mapper/business/BusinessAlertMapper.xml | 165 +++++++++++++-- .../model/entity/WaylineFileEntity.java | 5 +- .../workflow/handler/FlwAlertHandler.java | 4 +- 24 files changed, 641 insertions(+), 77 deletions(-) create mode 100644 dk-modules/business/src/main/java/org/dromara/business/config/ZlmConfig.java create mode 100644 dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java create mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/BusinessVideoService.java create mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVideoServiceImpl.java 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/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/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..d2ce01a 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 @@ -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/BusinessDepartBoundaryController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java index e474a14..2062ca0 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java @@ -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)); } /** @@ -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/controller/BusinessVideoController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java new file mode 100644 index 0000000..182287f --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessVideoController.java @@ -0,0 +1,90 @@ +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.BusinessVideoService; +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; + +/** + * rtmp默认端口1935, rtsp默认端口554 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/video") +@Tag(name = "ZLMediaKit视频流相关操作") +public class BusinessVideoController { + + private final BusinessVideoService 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("获取失败!"); + } +} 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/BusinessDepartBoundary.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java index 4f3408f..d36f1b4 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java @@ -65,9 +65,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/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/service/BusinessAlertStatisticsService.java b/dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertStatisticsService.java index 67f47f5..a3041a2 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/BusinessAlertStatisticsService.java @@ -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/BusinessVideoService.java b/dk-modules/business/src/main/java/org/dromara/business/service/BusinessVideoService.java new file mode 100644 index 0000000..3a03385 --- /dev/null +++ b/dk-modules/business/src/main/java/org/dromara/business/service/BusinessVideoService.java @@ -0,0 +1,16 @@ +package org.dromara.business.service; + + +public interface BusinessVideoService { + Boolean startRecording(); + + Boolean stopRecording(); + + String isRecording(); + + 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/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/IBusinessDepartBoundaryService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java index 4b11042..a1e55a1 100644 --- 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 @@ -18,7 +18,7 @@ public interface IBusinessDepartBoundaryService extends IService queryByDeptId(String deptId); - boolean uploadShpFile(MultipartFile file); + boolean uploadShpFile(MultipartFile file,Integer areaType); boolean deleteDepartBoundary(String id); 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..5db0bbe 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 @@ -102,10 +102,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); 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..05a8caa 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 @@ -55,13 +55,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 +103,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 +122,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/BusinessDepartBoundaryServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java index e653896..48d7eef 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java @@ -77,12 +77,12 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl geospatialVectorsList = buildGeospatialVector(file); //6、生成新的对象集合存储数据表中 - List boundaryList = buildBusinessDepartBoundary(geospatialVectorsList); + List boundaryList = buildBusinessDepartBoundary(geospatialVectorsList,areaType); // 分批处理 int startIndex = 0; // 从第 0 条开始 @@ -212,7 +212,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl buildBusinessDepartBoundary(List geospatialVectorsList) { + private List buildBusinessDepartBoundary(List geospatialVectorsList,Integer areaType) { List resultList = new ArrayList<>(); List> namePathList = remoteDeptService.getNamePathList(); @@ -232,7 +232,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl response = restTemplate.getForEntity(url, String.class); + if (response.getStatusCode().is2xxSuccessful()) { + Map result = objectMapper.readValue(response.getBody(), Map.class); + log.info("录制停止成功: {}", result); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return false; + } + + return true; + } + + @Override + public String isRecording() { + String result = null; + + 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 = resultMap.get("status") + ""; + log.info("获取录制状态成功: {}", resultMap); + } + + return result; + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + } + + return result; + } + + @Override + public Boolean setRecordSpeed(Double speed) { + 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 result = objectMapper.readValue(response.getBody(), Map.class); + log.info("设置录制速度成功: {}", result); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return false; + } + + return true; + } + + @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) { + 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 result = objectMapper.readValue(response.getBody(), Map.class); + log.info("设置录像流播放位置成功: {}", result); + } + } catch (Exception e) { + log.error("请求异常: {}", e.getMessage(), e); + return false; + } + + return true; + } +} 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..0c969b4 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/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java index 79c23ff..81b6221 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; /** * @author sean @@ -54,9 +55,9 @@ public class WaylineFileEntity implements Serializable { private String username; @TableField(value = "create_time", fill = FieldFill.INSERT) - private Long createTime; + private Date createTime; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - private Long updateTime; + private Date updateTime; } 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()); } /** From b0da16d64a5ea89a642d884b5cba259cd26315b3 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Mon, 10 Mar 2025 17:31:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=84=E8=AD=A6=E5=AF=B9=E6=AF=94=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3=202=E3=80=81=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=B5=81=E5=BC=80=E5=A7=8B=E5=BD=95=E5=88=B6?= =?UTF-8?q?=E3=80=81=E5=81=9C=E6=AD=A2=E5=BD=95=E5=88=B6=E3=80=81=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=BD=95=E5=88=B6=E3=80=81=E8=8E=B7=E5=8F=96=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E6=B5=8B=E8=AF=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessAlertStatisticsController.java | 4 +- .../controller/BusinessVideoController.java | 4 +- ...a => IBusinessAlertStatisticsService.java} | 2 +- ...ervice.java => IBusinessVideoService.java} | 4 +- .../BusinessAlertStatisticsServiceImpl.java | 6 +- .../impl/BusinessVideoServiceImpl.java | 56 +++++++++++-------- 6 files changed, 41 insertions(+), 35 deletions(-) rename dk-modules/business/src/main/java/org/dromara/business/service/{BusinessAlertStatisticsService.java => IBusinessAlertStatisticsService.java} (93%) rename dk-modules/business/src/main/java/org/dromara/business/service/{BusinessVideoService.java => IBusinessVideoService.java} (78%) 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 d2ce01a..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") 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 182287f..db4f6ed 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 @@ -5,7 +5,7 @@ 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.BusinessVideoService; +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; @@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.RestController; @Tag(name = "ZLMediaKit视频流相关操作") public class BusinessVideoController { - private final BusinessVideoService businessVideoService; + private final IBusinessVideoService businessVideoService; /** 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 93% 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 a3041a2..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); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/BusinessVideoService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java similarity index 78% rename from dk-modules/business/src/main/java/org/dromara/business/service/BusinessVideoService.java rename to dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java index 3a03385..f61671b 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/BusinessVideoService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVideoService.java @@ -1,12 +1,12 @@ package org.dromara.business.service; -public interface BusinessVideoService { +public interface IBusinessVideoService { Boolean startRecording(); Boolean stopRecording(); - String isRecording(); + Boolean isRecording(); Boolean setRecordSpeed(Double speed); 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 05a8caa..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; 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 2e565ba..3cb1158 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 @@ -5,19 +5,17 @@ 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.BusinessVideoService; +import org.dromara.business.service.IBusinessVideoService; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; @Service @Slf4j @RequiredArgsConstructor -public class BusinessVideoServiceImpl implements BusinessVideoService { +public class BusinessVideoServiceImpl implements IBusinessVideoService { private final ZlmConfig zlmConfig; private static final ObjectMapper objectMapper = new ObjectMapper(); @@ -27,6 +25,7 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { @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(), @@ -44,19 +43,22 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { try { ResponseEntity response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { - Map result = objectMapper.readValue(response.getBody(), Map.class); - log.info("录制启动成功: {}", result); + 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 false; + return result; } - return true; + 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(), @@ -69,20 +71,21 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { try { ResponseEntity response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { - Map result = objectMapper.readValue(response.getBody(), Map.class); - log.info("录制停止成功: {}", result); + 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 false; + return result; } - return true; + return result; } @Override - public String isRecording() { - String result = null; + public Boolean isRecording() { + Boolean result = false; String url = String.format("%s%s?app=%s&stream=%s&type=%s&vhost=%s&secret=%s", zlmConfig.getApiUrl(), @@ -97,13 +100,12 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { ResponseEntity response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { Map resultMap = objectMapper.readValue(response.getBody(), Map.class); - result = resultMap.get("status") + ""; + result = (Boolean) resultMap.get("status"); log.info("获取录制状态成功: {}", resultMap); } - - return result; } catch (Exception e) { log.error("请求异常: {}", e.getMessage(), e); + return result; } return result; @@ -111,6 +113,8 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { @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(), @@ -124,15 +128,16 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { try { ResponseEntity response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { - Map result = objectMapper.readValue(response.getBody(), Map.class); + Map resultMap = objectMapper.readValue(response.getBody(), Map.class); + result = (Boolean) resultMap.get("status"); log.info("设置录制速度成功: {}", result); } } catch (Exception e) { log.error("请求异常: {}", e.getMessage(), e); - return false; + return result; } - return true; + return result; } @Override @@ -163,6 +168,8 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { @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(), @@ -175,14 +182,15 @@ public class BusinessVideoServiceImpl implements BusinessVideoService { try { ResponseEntity response = restTemplate.getForEntity(url, String.class); if (response.getStatusCode().is2xxSuccessful()) { - Map result = objectMapper.readValue(response.getBody(), Map.class); - log.info("设置录像流播放位置成功: {}", result); + 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 false; + return result; } - return true; + return result; } } From 67d413e3062a1c17958c0e93cc3daf324356a990 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 11 Mar 2025 17:57:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[feat]=201=E3=80=81=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=8C=BA=E5=9F=9F=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=88=B0system=E6=9C=8D=E5=8A=A1=E4=B8=AD=202?= =?UTF-8?q?=E3=80=81=E5=BC=80=E5=8F=91=E6=B5=81=E5=AA=92=E4=BD=93=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/api/RemoteWorkflowService.java | 22 +- dk-modules/business/pom.xml | 27 --- .../controller/BusinessVideoController.java | 24 ++- .../controller/WebhookController.java | 45 ++++ .../mapper/BusinessDepartBoundaryMapper.java | 30 --- .../mapper/BusinessPatrolAreasMapper.java | 22 -- .../mapper/BusinessVectorDictItemMapper.java | 8 - .../mapper/BusinessVectorDictMapper.java | 10 - .../IBusinessDepartBoundaryService.java | 30 --- .../service/IBusinessPatrolAreasService.java | 29 --- .../IBusinessVectorDictItemService.java | 12 -- .../service/IBusinessVectorDictService.java | 17 -- .../service/IBusinessVideoService.java | 22 +- .../impl/BusinessAlertServiceImpl.java | 8 +- .../impl/BusinessPatrolAreasServiceImpl.java | 197 ------------------ .../BusinessVectorDictItemServiceImpl.java | 28 --- .../impl/BusinessVectorDictServiceImpl.java | 37 ---- .../impl/BusinessVideoServiceImpl.java | 58 +++--- .../mapper/business/BusinessAlertMapper.xml | 8 +- .../business/BusinessPatrolAreasMapper.xml | 55 ----- .../resource/controller/SysOssController.java | 5 - dk-modules/system/pom.xml | 27 +++ .../system/SysDepartBoundaryController.java} | 16 +- .../system/domain/SysDepartBoundary.java} | 11 +- .../system/domain/SysGeospatialVectors.java} | 6 +- .../dromara/system/domain/SysVectorDict.java} | 9 +- .../system/domain/SysVectorDictItem.java} | 6 +- .../mapper/SysDepartBoundaryMapper.java | 28 +++ .../mapper/SysVectorDictItemMapper.java | 8 + .../system/mapper/SysVectorDictMapper.java | 10 + .../service/ISysDepartBoundaryService.java | 30 +++ .../service/ISysVectorDictItemService.java | 12 ++ .../system/service/ISysVectorDictService.java | 14 ++ .../impl/SysDepartBoundaryServiceImpl.java} | 74 +++---- .../impl/SysVectorDictItemServiceImpl.java | 28 +++ .../impl/SysVectorDictServiceImpl.java | 37 ++++ .../system/utils/BatchProcessorUtil.java | 39 ++++ .../system}/utils/ShpAnalysisUtil.java | 2 +- .../system/SysDepartBoundaryMapper.xml} | 26 +-- .../system/SysVectorDictItemMapper.xml} | 2 +- .../mapper/system/SysVectorDictMapper.xml} | 10 +- .../dubbo/RemoteWorkflowServiceImpl.java | 13 +- .../workflow/service/WorkflowService.java | 7 + .../service/impl/WorkflowServiceImpl.java | 13 ++ pom.xml | 2 +- 45 files changed, 473 insertions(+), 651 deletions(-) create mode 100644 dk-modules/business/src/main/java/org/dromara/business/controller/WebhookController.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictItemMapper.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessVectorDictMapper.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictItemService.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/IBusinessVectorDictService.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictItemServiceImpl.java delete mode 100644 dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessVectorDictServiceImpl.java delete mode 100644 dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml rename dk-modules/{business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java => system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java} (80%) rename dk-modules/{business/src/main/java/org/dromara/business/domain/BusinessDepartBoundary.java => system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java} (82%) rename dk-modules/{business/src/main/java/org/dromara/business/domain/BusinessGeospatialVectors.java => system/src/main/java/org/dromara/system/domain/SysGeospatialVectors.java} (96%) rename dk-modules/{business/src/main/java/org/dromara/business/domain/BusinessVectorDict.java => system/src/main/java/org/dromara/system/domain/SysVectorDict.java} (81%) rename dk-modules/{business/src/main/java/org/dromara/business/domain/BusinessVectorDictItem.java => system/src/main/java/org/dromara/system/domain/SysVectorDictItem.java} (85%) create mode 100644 dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictItemMapper.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/mapper/SysVectorDictMapper.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictItemService.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/service/ISysVectorDictService.java rename dk-modules/{business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java => system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java} (70%) create mode 100644 dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictItemServiceImpl.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/service/impl/SysVectorDictServiceImpl.java create mode 100644 dk-modules/system/src/main/java/org/dromara/system/utils/BatchProcessorUtil.java rename dk-modules/{business/src/main/java/org/dromara/business => system/src/main/java/org/dromara/system}/utils/ShpAnalysisUtil.java (99%) rename dk-modules/{business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml => system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml} (84%) rename dk-modules/{business/src/main/resources/mapper/business/BusinessVectorDictItemMapper.xml => system/src/main/resources/mapper/system/SysVectorDictItemMapper.xml} (67%) rename dk-modules/{business/src/main/resources/mapper/business/BusinessVectorDictMapper.xml => system/src/main/resources/mapper/system/SysVectorDictMapper.xml} (73%) 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